オブジェクト指向のプログラミングについてお聞きしたいです – プログラミング – Home

オブジェクト指向のプログラミングについ...
 
通知
すべてクリア

[解決済] オブジェクト指向のプログラミングについてお聞きしたいです


はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

2つの計算データm_data1,m_data2とその答えを記録するm_answerの3つのメンバ変数を
もったCDataクラスと、いろいろな計算方法を持っているCKeisanクラスの2つがあったと
します。どちらのクラスもドキュメントクラスにオブジェクトがあったとします。掛け算の答え
を求める関数を次のように作ったとします。

void CData::AnswerKakezan(CKeisan* pKeisan)
{
   m_answer = pKeisan->Kakezan(m_data1, m_data2);
}

CDataクラスのメンバオブジェクトとしてCKeisanクラスへのポインタをもたせるm_pKeisanを
作ってあらかじめ求めておけば、同じことが次のようにできると思います。

void CData::AnswerKakezan() //引数がいらない
{
   m_answer = m_pKeisan->Kakezan(m_data1, m_data2);
}

みなさんは上の2つの方法のどちらをよく使っていますか。後者の方だと後で、割り算の答え、
足し算の答えを求める関数などが必要になったとき、実装する上でも、その関数を使う上でも
簡単な気がしました。僕自身も、今までは後者の方法をよく使っていたのですが、オブジェクト
を再利用したりするときでは、前者の方がわかりやすかったり、思い出しやすかったりするので
はないかとも感じました。

どんなことでも結構です。何かお気づきな点があれば教えてください。


引用未解決
トピックタグ
あ
 あ
(@あ)
ゲスト
結合: 23年前
投稿: 47
 

そこらへんをおし進めていくとStrategyパターンになる。

よむべし。
http://www.amazon.co.jp/exec/obidos/ASIN/4797311126/yfcbookshelf-22/249-2475345-
5397967


返信引用
はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

あさん、お返事ありがとうございます。早速、本屋でチェックしてみます。


返信引用
蟹飯
 蟹飯
(@蟹飯)
ゲスト
結合: 23年前
投稿: 3
 

Kakezanをstaticにし

void CData::AnswerKakezan() //引数がいらない
{
   m_answer = CKeisan::Kakezan(m_data1, m_data2);
}

がいいと思います。


返信引用
はまち
 はまち
(@はまち)
ゲスト
結合: 24年前
投稿: 146
Topic starter  

蟹飯さん、お返事ありがとうございました。
こういう風にもプログラムを書くことができるんですね。知りませんでした。本を調べながら
わかったのですが、静的メンバ関数という方法ですよね。こういった使い方もあるんですね。
勉強になりました。

あさんへ
 例の本を書店で見つけたので読んでみたのですが、僕には難易度が高く、まだまだ勉強
しなくてはと痛感しました。少しずつ、ゆっくりやっていこうかと思います。ありがとうござ
ました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました