イヌヌです。
かなりあほな質問ですが、とっても知りたいのです。
クラスって・・・
何なんでしょうか?
マイクロソフトが用意した関数?
自作も出来る?
参考書等を読み漁ったのですが、いまいち納得できません。
よろしくお願いします。
クラスとは 似たような機能や処理をひとまとめにした
グループのことです。
たとえば、 大工さんや水道屋さんやガス屋さんなどをひとまとめにして
建築クラスとか、
先生や警察や自衛隊の人たちをひとまとめにして
公務員クラス とか言う感じです。
たとえがわかりにくいですか?(笑
以下けん★さんの意見に私なりの補足です。
C++言語ではクラス毎に同名の関数が作れます。
int 切る(){}
という関数を追加するとします。小さいあぷりなら切る();と言えば判るので無理にクラス化する必要はありません。
しかし、プロジェクトが大きくなっていくと似た動きをする関数がどうしても必要な時が出てくるはずです。
その時、切断する(){}というような関数を作るとこんがらがってしまう可能性がありますね。
そうならないためにクラス化です。けん★さんの条件で例を挙げると、
大工さん::切る(){}
先生::切る(){}
というように宣言しておくと
「大工さんは木を切るんだよな。先生が切るのは紙であって材木じゃないよな。」
といった風に自分が整理しやすいだけでなく、他の人にも理解しやすいと思います。
普通は関数名にわかりやすい名前を付けるハズなので、さらにグループ化して固有性を高めようということです。
オブジェクト指向についてもいろいろ意見がありますが、
私は『クラス化する』=『オブジェクト指向プログラミング』だと考えています。
他の皆さんの意見はどうなんでしょうか。ぜひ伺いたいですね。
↑でも私はそんなにデカイものを組んだことはありませんが(^^:)
イヌヌです。
けん★さん、たけみさんご返答ありがとうございます。
あほすぎて誰にも相手にされないんじゃないかって、どきどきしてたんですよ。
で、私なりにお二人の意見を参考に考えてみました。
ガンガン突っ込んでください。
例えば
親クラス・・・DBの操作に関する処理を行う(読込・更新・削除)
で、読込・更新・削除の処理は、色々な処理で流用して使えるように
子クラス化する。(←これだとマクロかな???)
うーん・・・今までずーっと汎用をやっていたので、考え方がどうしても汎用屋さんになってしまう。
この考え方でいいのでしょうか?
えーっとですねぇ。。
どっちかっていうと
親クラス、子クラスっていうよりか クラスとそれに属するメンバ関数やねんけど。。
わかりやすくいうと DBの操作に関する処理をまとめたもの → DBクラス(学校のクラスみたいなイメージ)
そのクラスメイトの読込君 彼はDB読込が得意な子
さらにクラスメイトの更新君、削除君って言った感じかな?
でも、クラスを指定してやらないと、隣のクラス(ファイルクラス)の読込君(ファイル読込)
とかと、名前が似てる(または同じ)なのでややこしいので、
使用するときは
DBクラスの読込君 といった感じにする
ということで当然自分でも好きなクラスを作成することができます