プロが教える店舗&オフィスのセキュリティ対策術

C言語で「構造化プログラミング」を独学しました。目標は科学技術計算(シミュレーションを含む)です。現在、「オブジェクト指向プログラミング」に興味があるのですが、C言語をかじった者は、「オブジェクト指向プログラミング」としまして、C++へ移行するのが自然なのでしょうか。それとも、C++にこだわらず、JAVA言語などのトレンドに移行すべきなのでしょうか。C言語を独学した者が学ぶべき「オブジェクト指向プログラミング」言語は何でしょうか。お教えください。また、「オブジェクト指向プログラミング」に適した書籍もお教え頂けると助かります。よろしくお願いします。

A 回答 (1件)

オブジェクト指向自体は根本的には「一連の処理と必要な値を使いやすくまとめておく」ことなので、これからどうするかについては好きにして下さいとしか…。


当然、オブジェクト化すること自体が抽象化なので実行速度は遅くはなっています。

楽をしてアプリケーションのような物を作りたければJAVA(遅い)などのほうがいいし、
徹底的に「速い数学や計算」をやりたければ逆にFORTRANとかのほうがいいと思われます。
アプリケーションを作るには多少の苦労はあっても、いつでもどこでも誰にでも幅広く便利な物を使いたければC++です。

ちなみにオブジェクト指向ってのは曖昧な抽象概念なので、
オブジェクト指向だと思える程度の実装があり、
使用者もひねくれずにオブジェクト指向と思って扱ってる限りは、それは全部オブジェクト指向です。


どう思えばいいのかと言うと、
コンストラクタを呼んで、メソッドを使って、デストラクトする方針であれば全部オブジェクト指向です。
それだけです。具体的な仕組みは一切問われません。

そのようにしかできないように設計されてる言語などは、強制的なオブジェクト指向です。
別にそんな仕組みは、普通のCでも作れます。(ある程度動的管理の処理が必要ですが)。


オブジェクト指向と言うのは、プログラムのデザインとして人間にとって必要だから「しょうがないので」導入する物の一つであって、
その辺は好きにしてください、というのが結論です。
オブジェクトかどうかで言語を選ぶ意味はほぼないと思われます。
    • good
    • 0
この回答へのお礼

TANUKIAさん、ありがとうございました。構造化プログラミングの先に、オブジェクト指向プログラミングがある訳ではなく、目的を持ってオブジェクト指向に移行するにも、熟慮が必要だとわかりました。本当にありがとうございました。

お礼日時:2015/12/18 11:32

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