C/C++の違いは何なんでしょうか? 自分が思う違いは以下があると思うのですがそれ以外に何か違いがありましたら 教えてください

ベストアンサー

0

ThanksImg質問者からのお礼コメント

かなり詳しくご回答ありがとうございます。 構造体に関数の記述が可能なんですね知らなかったです。 動画見てみます。ありがとうございます。

お礼日時:4/7 9:00

その他の回答(4件)

2

実は一番大きな違いはソフトの設計方法です。オブジェクト指向で設計できない人、考えられない人というのはC++に向いていません。でもそんな人は世の中の企業から求められていない。 C言語だとデータと関数は別々に管理しますが、C++では一緒にクラスに封じ込めます。これはC言語でも「関数ポインタ」を使えば似たようなことは実現できますが、「継承」「多態性」はC言語ではできないので、無駄な努力をするよりはC++で書いた方がスッキリする。 例えばシューティングゲームを作るときに「敵の位置」を x と y で管理するとします。でも自分の位置やミサイルの位置も x と y で管理できる訳で、それをわざわざ別々のデータ構造にする意味はない。「敵を移動させる」のと「自分を移動させる」のは同じ「移動させる」という関数で実装できる。移動の条件・方法などが異なる場合は、多態性を使って解決できる。これがオブジェクト指向的な考え方。 C言語しかできない人は、根本的にこのような考え方ができない。時代に完全に取り残されていて救いようがない。転職先もない。

2人がナイス!しています

1

>上位互換言語 なのですが >オブジェクト指向を取り入れた 言語の問題というより 「貴方はオブジェクト指向な発想が出来るか?」 を問われる点が最も大きな違いでしょうね 「オブジェクト指向でも書ける」 「オブジェクト指向を使わないでも書ける」 でも「オブジェクト指向がしっかり解っていれば」 C言語でも「オブジェクト指向で書ける」ので ・C++の方が「オブジェクト指向をサポートする仕掛け」がたくさんある が FINAL ANSWER

1人がナイス!しています

1

>・C言語は関数で記述するのにC++はクラスで記述する C++でも普通に関数でかけるから。 自身でも上位互換って書いているじゃないですか 関数でかけなくなったら互換とは言いませんよ。

1人がナイス!しています

0

大きなところで、C++はテンプレートを使用してジェネリックな記述ができるようになってます。 Cも何度か改訂がはいってますが、C++の規格は毎回の改訂で中身がどんどん膨らんで、仕様全部把握してる人がどれだけいるのかという状態になってますね。