クラスの長所

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

クラスの長所

#1

投稿記事 by imiko » 13年前

今、C++の勉強をして
いるのですが、
クラスで躓いています。

そこで、いくつか聞きたいことがあります。
・将来プログラマーを目指しているのであれば、クラスは必須ですか。
・クラスはどういうプログラムに適しているのか。7

よろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: クラスの長所

#2

投稿記事 by softya(ソフト屋) » 13年前

・将来プログラマーを目指しているのであれば、クラスは必須ですか。
クラスを始めとするオブジェクト指向はプログラミング言語の多くで取り入れらているので必須と言えると思います。
ただ、すべての仕事場でプログラマーが高レベルの理解度でクラス・オブジェクト指向を使いこなしているかは疑問視される所です。
だからって、手を抜いていい理由にはならないのですが。
・クラスはどういうプログラムに適しているのか。
プログラムの部品化・抽象化を得意とします。【補足】なので大規模プログラミングに適していると言えると思います。
あとスマートポインタなど、プログラマーが失敗しやすい部分のフォローをしてくれる機能などを言語に追加した様に見せかけることができます。

私はクラス万能主義者ではありませんが便利なことは確かですね。
今クラスのどの様のようなことで躓いているか教えてもらえますか?

【追記】大層なことが言えるほど私も使いこなしているわけではありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

無双贄
記事: 15
登録日時: 13年前

Re: クラスの長所

#3

投稿記事 by 無双贄 » 13年前

クラスの長所はsoftyaさんが言うようにオブジェクトの部品化・抽象化です。
C++の威力はある程度システムの規模が大きくならないと実感することは難しいでしょう。
部品化することによってシステムの拡張性が広がり、システムの変更や追加が非常に楽になります。
抽象化では重複するシステム(ゲームでいう自機の移動や敵の移動)などをまとめたりすることでコードを書く量を減らすことができます。
そういうことではクラス,引いてはオブジェクト指向は最適と言えるでしょう。

プログラマは「後々楽をするために今苦労する」そうですよ。

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

Re: クラスの長所

#4

投稿記事 by beatle » 13年前

純粋にクラスの長所を感じ取りたいならJavaとかC#を使う方がいいと思います。
JavaやC#はクラスが「参照型」です。本質的にはポインタと同じなのですが、ポインタを上手く隠した書き方になっています。
そして参照型であるクラスを使うと、クラスの継承などスムーズに扱うことができるようになります。

C++でオブジェクト指向をやる価値としては、過去の資産(C言語のライブラリなど)を使える、低レベルな記述(ポインタで細い操作をしたり)ができるといったことでしょうか。
純粋にオブジェクト指向プログラミングを学ぶ言語としてはC++は最適というわけではありません(と僕は思っています)。

JavaやC#などはクラスを基本単位として標準ライブラリが構成されています。いわゆるクラスライブラリです。
そのようなライブラリを用いて開発することでクラス化のメリットなどを少しは実感できるかもしれませんね。

imiko

Re: クラスの長所

#5

投稿記事 by imiko » 13年前

返事が遅れました。
みなさんありがとうございます。
躓いているというより
クラスの必要性をあまり感じられなくなったので質問させていただきました。
今、クラスについて知識を深めることができたので
ここで終わりにします。
ありがとうございました。

閉鎖

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