• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++の為にCはどの程度理解する必要がありますか?)

C言語の理解度とC++の学習に必要な量

このQ&Aのポイント
  • C++を利用するにあたってどの程度Cを理解しているとコードが読めないプログラムを書けない等の弊害が出ない若しくは減少できるのでしょうか?
  • C及びC++の辞書的な利用ができる本でお勧めのもの等ありましたら教えていただけませんでしょうか?
  • テキストでは得にくいプログラミングやその周囲の情報(雑学等でも構いません)お勧めの書籍等ありましたら教えていただけませんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

1.現在のANSI CはC++と厳密に言うと互換性がありません。ただ、基本的な文法は類似しているので、C言語を学んでおくとC++が分かりやすいかもしれません。しかし、C++を学ぶのに段階的にC言語を学ぶ必要性は薄いと思います(C++の学習の中でもできる)。 2.自分が買った本では「C/C++辞典 」 http://www.bk1.jp/product/03278880 あたりはどうでしょうか。 3.は 「C++クラスと継承完全制覇」 http://www.bk1.jp/product/02220383 「プログラミング作法 」 http://www.bk1.jp/product/01955273 「ライト、ついてますか 問題発見の人間学」 http://www.bk1.jp/product/00486871 「コンサルタントの秘密 技術アドバイスの人間学」 http://www.bk1.jp/product/00736379 「なぜ、あなたはJavaでオブジェクト指向開発ができないのか」 http://www.bk1.jp/product/02496742 「オブジェクト指向における再利用のためのデザインパターン 改訂版 」 http://www.bk1.jp/product/01705361 あたりでしょうか。C++のようなオブジェクト指向言語ではクラス設計の出来不出来がかなり影響してくるので注意してください。

hellowor551166
質問者

お礼

丁寧かつ迅速な解答ありがとうございます。 互換性のお話は初めて聞くもので目から鱗でした。 お答えにあった辞典等を買い求め、引き続きC++の学習をしていきたいと思います。 蛇足ではありますがジェリー・ワインバーグ先生の本で特に気に入っていた「ライト、ついていますか」が載っていたことに思わず驚きました。あの本を読んでおきながら自分で問題を増殖してるあたり困り果てたモノです。

その他の回答 (2)

  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.3

C++の入門書であれば、Cを知らない人向けに書かれているものも多いと思いますが。 説明が全くないとしたら、以下のようなことを理解しておけばいいと思います。 ・includeの仕組み ・関数 ・forループ ・while/do whileループ ・if分岐 ・switch分岐 ・加減剰余やビットシフトなどの演算子 ・マクロ ・ポインタ ・配列 もしこのあたりに自信がないようでしたら、こういったものも含めて説明している C++の入門書を探されるといいと思います。 あえてCではなくC++を選ばれているということは、オブジェクト指向に 興味がおありなのかと思います。 個人的には、オブジェクト指向の学習にはC++はあまり向きません。 ちょっと複雑すぎるんですよ。 多重継承や演算子のオーバーロード、イテレータやテンプレートなど、他のライトな言語では 実現できないものも多く、個人的には好きですが入門用には感じません。 全部習得するのに1年から5年(適性による)くらいかかるんじゃないでしょうか。 プロでもちゃんと理解していない方が多いです。 もうちょっとライトな、JavaやC#の方がいいような気がします。

hellowor551166
質問者

お礼

具体的な項目のリストに加えて今後の指針になるようなお話まで本当にありがとうございます。 せっかくココまで具体的なアドバイスも頂けたのでもう少し学習してみたいと思います。 それでも駄目な場合にはサンクコストにして紹介にありましたJavaかC#に手を出してみます。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

完全に互換性がないためC言語のそのまま真似すると害のある部分もありますが、世の中のサイトの情報でC言語のものが溢れているとか、有用なライブラリでC言語のものがあるのも事実です。 なので読む時や参考にするときにC言語とC++の違いを知っておいたほうが思わぬ落とし穴に陥ることを避けることができます。 「C++プログラマのためのC言語入門 | 株式会社きじねこ」 http://www.kijineko.co.jp/tech/cpp2c

hellowor551166
質問者

お礼

素晴らしい解答とサイトを紹介して頂きありがとうございます。 現実問題としてC言語の蓄積が利用できる事には初心者の私でも大きなメリットに感じます。 Cから流用する際には解答にありましたようにそのまま真似しないよう意識したいと思います。

関連するQ&A