トップページ > プログラム > 2014年06月27日 > fQovSiOU

書き込み順位&時間帯一覧

22 位/217 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000300000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part113

書き込みレス一覧

C++相談室 part113
296 :デフォルトの名無しさん[sage]:2014/06/27(金) 16:14:46.16 ID:fQovSiOU
基底クラスでイコール演算子をダイナミックキャストなしで
ヴィジターパターンを使って実装する方法見つけたんだけど
教えてほしい?
C++相談室 part113
298 :デフォルトの名無しさん[sage]:2014/06/27(金) 16:56:13.37 ID:fQovSiOU
では教えよう。
class B{
public:
virtual bool equal(B * b);
virtual bool f(D * d);
};
class D:public B{
public:
bool equal(B * b){
b->f(this);
}
bool f(D * d){
//ここでdとthisを比べる。
}
};
基底クラスでfを定義するのが汚いけどdynamic_castするよりは早いと思う。
ちなみに基底クラスで派生クラスのコピーを作るときはcloneメソッドを実装するといい。
C++相談室 part113
299 :デフォルトの名無しさん[sage]:2014/06/27(金) 16:58:06.34 ID:fQovSiOU
では教えよう。
class B{
public:
virtual bool equal(B * b);
virtual bool f(D * d);
};
class D:public B{
public:
bool equal(B * b){
return b->f(this);
}
bool f(D * d){
//ここでdとthisを比べる。
return a;
}
};
基底クラスでfを定義するのが汚いけどdynamic_castするよりは早いと思う。
ちなみに基底クラスで派生クラスのコピーを作るときはcloneメソッドを実装するといい。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。