C++を覚えるためにC言語は必要ないんですか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
neet

C++を覚えるためにC言語は必要ないんですか?

#1

投稿記事 by neet » 8年前

C++を覚えてネットアプリを作ってみたくて、まずは簡単そうなC言語から勉強してるんですが
「C言語の変な癖がついて分かりにくくなるからC++からやったほうが良いよ」というのを見かけて気になってしまって…
C++というものはC言語を覚えなくても理解できるものなのでしょうか?
ちなみにプログラミング言語の学習はC言語が初です

hide

Re: C++を覚えるためにC言語は必要ないんですか?

#2

投稿記事 by hide » 8年前

c言語ができない人がc++を使いこなすのは不可能でしょう。
まともに学んだ場合の難易度の差が非常に大きいです。
ただ、古くて参考にすべきでない部分も多いのでそこは気をつけるべきです。
個人的にはc言語の入門書が余裕になったらやりたい分野に合わせて新しい言語を選択すへきとは思います

ちなみにネットアプリが何を指すかちょつと判断しかねるのですが、
本気で爆速サーバー0から作ってみせるぜ!とかでなければ
c++を学ぶのは間違いかと思われます。
ただの通信ならばc++である必要はありませんし
サーバーならばJavaやRuby等が良いです。
また、WebならばJava Scriptでしょう。

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: C++を覚えるためにC言語は必要ないんですか?

#3

投稿記事 by YuO » 8年前

変な癖はともかく,
  • C++は(ライブラリの部分で仕様を参照しているとはいえ)Cとは異なる言語である
  • まがりなりにも使えるようになってから振り返ると,C++のプログラムを書く上で「C(固有の)の知識」が必要になることはまずない
といった面から,いきなりC++を学んでもよいとは思います。
ただし,現実的にいきなりC++を学んだ人というのはとても少ないため,C++から勉強する場合に必要な良質の資料が手に入らない,という問題がありますが……。

アバター
tk-xleader
記事: 158
登録日時: 13年前
連絡を取る:

Re: C++を覚えるためにC言語は必要ないんですか?

#4

投稿記事 by tk-xleader » 8年前

 確かにC++は"概ね"C言語のスーパーセットになっています。そして多くの人がC言語を学習してからC++を学んだということから、C言語を学んでからC++を学ぶというのが一種のセオリーみたいになっているところがあります。ただし、C言語の学習を一旦経た方がいいかどうかは、時と場合によります。

 C言語では常識的なコードがC++では忌避すべきコードと考えられているようなことも多々あるのです。「C言語を学ぶと変な癖がつく」というのは、C言語では普通だけどC++では避けるべきコードを書いてしまいがちになるということから来てるんだろうと思います。ただし、C++はC言語に毛が生えた程度のスタイルでも使えるようには設計されています。

 ただ一方でC++からはC言語のコードを普通に呼べるわけで、Cインターフェイスを持つAPIやライブラリを呼ぶということになれば、APIスタイルというのは言語的特徴が如実に反映されるものなので、C言語の知識が必要だろうと思います。逆に、モダンなC++スタイルのAPI/ライブラリであれば当然C++の文化をそれなりに理解してなければならないわけです。

 「C言語の学習を経るべきかどうか」というのは、どのようなスタイルのコードを書き、また利用するかということによるということです。ただ、モダンなC++スタイルのインターフェイスを持つライブラリもそれなりに充実してます。ネットアプリということになれば、Aceやboost.asioなどのモダンC++スタイルのライブラリがわりとあるはずです。GUIとなるとQtやWxWidgetsなどが候補に挙がります。となれば、必ずしもC言語の知識が必要とはいえないだろうと思います。

neet

Re: C++を覚えるためにC言語は必要ないんですか?

#5

投稿記事 by neet » 8年前

すいません遅れました^^;
とても濃い回答ありがとうございます。初学者なのであまり深いところは分かってませんが、うーんC言語を飛ばすか飛ばさないかは人によって違うんですね
でも多くの人はC言語からやってその後にC++をやってると聞いて自分の学習が無駄ではないことが分かって安心しました
とりあえずC言語の入門書くらいは余裕ってところまでいったらまた再び考えて見ようと思います
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る