重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

今はc++を勉強しています。独習c++って言う本を使って、初級の勉強が終わりました。次の段階として、なんにを勉強すればいいかがわからないです。自分としてはc++を完璧にマスターしたいです。いいアドバイスがあれば、教えてください!
今は独習しています。

A 回答 (4件)

すみませんがひとつお訊きしたいことがあります。



> c++を完璧にマスター

どういった状態を「完璧に」マスターと呼ぶのでしょうか?
標準関数やらSTLやらを引数の順序から何から何まで「暗記」した状態?
それとも勘違いしそうな微妙な仕様の数々を全部把握してこういった掲示板で
披露するようなことができること?

そもそもCだとC++は道具なんですから、何かを作りたいものがあって
そのために使う道具の使い方を知りたいというのならともかく、
とにかくなんでもいいから「使い方を完璧にマスターしたい」なんてのは
わけがわかりません。

K&RのKの人がいっていた言葉だったと思いますが、あるプログラミング言語を
きちんと使えるように理解するにはその言語でプログラムを作ってみるのが一番だ
といった趣旨の言葉を残しています。

今一度何のために「完璧にマスター」したいのか自問自答してみてはいかがですか。
    • good
    • 0

>自分としてはc++を完璧にマスターしたいです。



なら「プログラミング言語C++」に目を通してください。
C++を作った人自身による解説書です。
これを読むと「独習C++」はあくまで初級の入門書に過ぎないことが分かるはずです。
「C++を完璧にマスター」するためには理解せなあかんことがまだまだ山ほどあります。

だだまぁ、「C++を完璧にマスター」することが必要なのかどうかは別の話ですね。C++の仕様は他の言語に比べかなり大きいので。

とりあえず、今習得した知識で実際にプログラミングをしてみる。
その上で、知識に不足を感じたらまた勉強するってのが現実的だと思います。
    • good
    • 0
この回答へのお礼

ご返答、ありがとうございます。
>、「C++を完璧にマスター」することが必要なのかどうかは別の話ですね。

最初、どの言語を撰ぶか、悩んでいました。やっぱり、C++は多く使われているから、c++にしました。

お礼日時:2007/08/05 14:30

★アルゴリズムの本の紹介。


・この『C/C++』のカテゴリで『アルゴリズム』で検索してみて下さい。
 そこで書かれているやり取りを読み自分でもいろいろ考えてみて下さい。
 あるいはネット検索してアルゴリズムの勉強を行う。
・過去に何冊かアルゴリズムの本を紹介しているので下のリンクをどうぞ。

過去質問より:
 http://oshiete1.goo.ne.jp/qa3082805.html→『アルゴリズム関連の奨めサイトは?』
 http://oshiete1.goo.ne.jp/qa2914917.html→『データ構造とアルゴリズム』

お気に入り:
・私のお気に入りの『アルゴリズムの本』は
 http://www.amazon.co.jp/dp/4797324198/→『プログラミングの宝箱 アルゴリズムとデータ構造』
 です。
・アルゴリズムの本としては定番の内容ばかりですが、その一部に『多倍長整数演算』があり
 前ネットで探したサイトより分かりやすかったです。C++ で用意されている STL はこの本
 で書かれている基本アルゴリズムをすぐに利用できるように用意されています。
・そこで今後の勉強方の1つにご自分で STL と同じライブラリをクラスを用いて書いてみる。
 自分で同じような STL を作るのは無駄な気がしますが、もし作れたら完全に STL を使いこなせる
 ようにもなります。また、作るにはアルゴリズムのほかに使いやすいクラスの設計方法も学べるはず。
・アルゴリズムの本を数冊かって読んだ後はそれを使いやすいクラスとして用意(実装)出来るための
 実践的な勉強方がいいでしょう。

そこで提案:
・私のお勧めとしては多倍長演算クラスを作成するのはどでしょうか?
 整数、実数、指数、虚数、分数などの計算をクラスの継承とかにより機能拡張して
 作成するのです。基本クラスに整数演算、派生クラスに実数、指数の計算を行って
 これらの派生クラスとしてさらに虚数、分数の計算をするクラスを用意します。
・また、演算子をオーバーロードして使いやすいクラスのインタフェース設計も用意。
 その他、速度面からオーバーロードされた演算子を使わなくても演算が行えるように
 メソッド関数でも用意しておくと良い。このときポインタではなく『参照』を大いに
 活用します。
・上記の多倍長演算クラスが出来上がった後は『動作テスト』もかね1つのプログラムを
 作成します。ここで作成するプログラムは計算式を入力されたら計算するタイプです。
 これをさらに機能拡張して if、else、for、while、switch などの制御文をつけて
 ちょっとしたマクロ・エンジン(スクリプト・エンジン)にも使えるようにクラスの
 汎用性、拡張性なども検証しながら『多倍長演算クラス』の動作テストを行う。
・その後、Windows の GUI で普通の電卓、関数電卓、グラフ関数電卓にも組み込めるように
 クラスの設計が出来ているか検証もしてみて下さい。

最後に:
・私は電卓が好きだったので『C++』のお勉強としてこんな題材でクラスの継承、設計を
 学びました。その後、実際に電卓などを GUI アプリケーションとして作成しました。
 よって何かテーマを決めてそれにあったクラスを作成できるように実践的な『C++』の
 お勉強方を探して下さい。
・以上。今後の参考に。

参考URL:http://www.amazon.co.jp/dp/4797324198/
    • good
    • 0
この回答へのお礼

ご丁寧の回答、ありがとうございます。やっぱり実際に作るのが一番ですね。

お礼日時:2007/08/04 18:01

独習C++,やり遂げましたか! すばらしい。


それではもう、言語仕様に関しては十分網羅されたものと思います。

> 自分としてはc++を完璧にマスターしたいです。

もう、言語を学ぶことより、プログラムを設計、実装することを始めても良いでしょう。英語の勉強と一緒です。英語を学ぶことが目的ではなく、英語を使って本を読んだり手紙を書いたり、会話をしたりして始めて英語を学んだ意味があるのと同様、プログラミング言語を使ってプログラムを書くことに意味があります。

xiaosinさんは、(独習C++を読めたということは)他の言語の経験がおありでしょうか? 無いのでしたら、次は基本的な「アルゴリズムとデータ構造」について学ぶと良いでしょう。また、「オブジェクト指向分析・設計」も、今後プログラムの設計をする上で重要になってきます。この辺りまで勉強すると、ようやく独習C++の後ろのほうに出てきたSTL(Standard Template Library)のありがたみがわかってきます。

初心者レベルで、
 プログラミング言語、アルゴリズムとデータ構造、ソフトウェア工学、テスト技法
を学んだら、中級レベルでは
 オブジェクト指向分析・設計、UML、デザインパターン
を学び、上級レベルでは
 要求仕様書の書き方、開発プロセス、CMM/CMMi、プロジェクトマネジメント
と進んでいくのが王道なのではないかと思います。

ここで言う上級レベルと言うのは、ソフト屋として仕事をしていくのに避けて通れないものを挙げました。ですので、これらを学ぶのはそういう仕事に就くことが決まってからで十分です。

とにかく、学ぶべきことは沢山ありますし、それらを学んで無いからプログラムを作れないと言うわけでもありませんので、まずはゲームでもお手軽ツールでも簡単なものを作ってみて、設計の必要性やアルゴリズム、データ構造の必要性を感じて見てはいかがでしょうか。
(もちろん、Windowsのプログラムを書くにはWindowsの知識が、ゲームのプログラムを書くにはゲームの知識がひつようです。プログラミングとは別に、ですよ。)
    • good
    • 0
この回答へのお礼

すばらしいアドバイス、ありがとうございます。
以前、c言語の初級を勉強しました。そのあとc++です。アルゴリズムとデータ構造に関しては、少ししかわかりません。Interestさんの話聞いていると、これからの勉強にはアルゴリズムとデータ構造が重要になってきます。ですから、アルゴリズムとデータ構造を勉強しよと思っています。この方面のいい本が知りませんか?知れば、教えてください。

お礼日時:2007/08/04 16:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!