[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/28 11:42 / Filesize : 246 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.45【環境依存OK】



409 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:47:57 ]
長文失礼、ちょっとC++プログラムのコーディングでいい方法があれば誰か教えて下さい。

今、簡単なライブラリ的なクラスを作りました。それは継承されることを前提として
います。仮にそれをKihonとしておきます。

今、Kihonの派生クラスHaseiを作りました。HaseiからKihonを使う方法ですがまず、Kihonの
メンバ関数を通じて必要なパラメータ(privateな変数)を設定します。次にHaseiに
double func(double x)なメンバ関数を定義します。これはKihonクラスでvirtual関数として
宣言されているものです。その後、Kihonのrunを実行するとHaseiのfuncが利用されて
処理が行われるというものです。一回のrunでfuncは何度も呼ばれます。

問題なのはHaseiで異なる二つの処理をKihonのrunにさせるにはどうしたらいいものかということ
です。つまり、異なる相異なる2関数に対してKihonのrunを実行するにはどうすればいいのかと
いうことです。しかも後に実行されるrunが前に実行されたrunの結果を使う必要があります。

初心者なりに考えた方法ですと・・・
0, Haseiのオブジェクトh0を作る。
1, Haseiのfunc関数を作る。この関数内で別のクラス、__Haseiのオブジェクトh1を作る。__Haseiは
Kihonを継承している。
2, 最初のrunで必要なメンバ関数funcを__Haseiで定義する。
3, Haseiのfunc関数からh1.runとして最初のrunを行う。
4, h0.runとして二度目のrunを行う。
(メンバ変数の設定に関しては説明略)。

実際、この方法だととりあえずは動作するのですが次のような問題点があります。
・__HaseiからHaseiのプライベートメンバにアクセスできない。(friendでは次項が解決不能…)
・実はHasei自体もライブラリ的に実装を隠蔽してしまいたいため、__Haseiのfuncを変更
出来るようにしたい。(ちなみにHaseiのfuncは固定。)

多重継承をうまく使うと解決できそうにも思えるのですが賢い、実装方法はないでしょうか。
お力をいただけると幸いです。根本的にKihonの設計に対する指摘でもお願いします。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef