ページ 1 / 1
クラスの長所
Posted: 2012年8月12日(日) 17:29
by imiko
今、C++の勉強をして
いるのですが、
クラスで躓いています。
そこで、いくつか聞きたいことがあります。
・将来プログラマーを目指しているのであれば、クラスは必須ですか。
・クラスはどういうプログラムに適しているのか。7
よろしくお願いします。
Re: クラスの長所
Posted: 2012年8月12日(日) 17:39
by softya(ソフト屋)
・将来プログラマーを目指しているのであれば、クラスは必須ですか。
クラスを始めとするオブジェクト指向はプログラミング言語の多くで取り入れらているので必須と言えると思います。
ただ、すべての仕事場でプログラマーが高レベルの理解度でクラス・オブジェクト指向を使いこなしているかは疑問視される所です。
だからって、手を抜いていい理由にはならないのですが。
・クラスはどういうプログラムに適しているのか。
プログラムの部品化・抽象化を得意とします。【補足】なので大規模プログラミングに適していると言えると思います。
あとスマートポインタなど、プログラマーが失敗しやすい部分のフォローをしてくれる機能などを言語に追加した様に見せかけることができます。
私はクラス万能主義者ではありませんが便利なことは確かですね。
今クラスのどの様のようなことで躓いているか教えてもらえますか?
【追記】大層なことが言えるほど私も使いこなしているわけではありません。
Re: クラスの長所
Posted: 2012年8月12日(日) 23:00
by 無双贄
クラスの長所はsoftyaさんが言うようにオブジェクトの部品化・抽象化です。
C++の威力はある程度システムの規模が大きくならないと実感することは難しいでしょう。
部品化することによってシステムの拡張性が広がり、システムの変更や追加が非常に楽になります。
抽象化では重複するシステム(ゲームでいう自機の移動や敵の移動)などをまとめたりすることでコードを書く量を減らすことができます。
そういうことではクラス,引いてはオブジェクト指向は最適と言えるでしょう。
プログラマは「後々楽をするために今苦労する」そうですよ。
Re: クラスの長所
Posted: 2012年8月12日(日) 23:52
by beatle
純粋にクラスの長所を感じ取りたいならJavaとかC#を使う方がいいと思います。
JavaやC#はクラスが「参照型」です。本質的にはポインタと同じなのですが、ポインタを上手く隠した書き方になっています。
そして参照型であるクラスを使うと、クラスの継承などスムーズに扱うことができるようになります。
C++でオブジェクト指向をやる価値としては、過去の資産(C言語のライブラリなど)を使える、低レベルな記述(ポインタで細い操作をしたり)ができるといったことでしょうか。
純粋にオブジェクト指向プログラミングを学ぶ言語としてはC++は最適というわけではありません(と僕は思っています)。
JavaやC#などはクラスを基本単位として標準ライブラリが構成されています。いわゆるクラスライブラリです。
そのようなライブラリを用いて開発することでクラス化のメリットなどを少しは実感できるかもしれませんね。
Re: クラスの長所
Posted: 2012年8月15日(水) 23:09
by imiko
返事が遅れました。
みなさんありがとうございます。
躓いているというより
クラスの必要性をあまり感じられなくなったので質問させていただきました。
今、クラスについて知識を深めることができたので
ここで終わりにします。
ありがとうございました。