【初心者歓迎】C/C++室 Ver.37【環境依存OK】
at TECH
177:デフォルトの名無しさん
07/05/15 02:58:46
>>168
そのルールでいくと、自分の型のポインタか参照を返すようなメソッドは
すべて下位クラスで再定義する必要がある。
('return *this' だけのメソッドは特別なんていうルールを採用する?)
ちなみに、以下のようなプログラムではどんな結果になるべき?
void prt3(A* obj) { printf("prt3(A)\n"); }
void prt3(B* obj) { printf("prt3(B)\n"); }
class A {
public:
A() {}
virtual void prt() const { printf("A::prt\n"); }
void prt2() const { printf("A::prt2\n"); }
// thisの型はA?,B? return時だけB?
A& geta() { prt(); prt2(); prt3(*this); return *this; }
};
class B : public A {
public:
B() {}
virtual void prt() const { printf("B::prt\n"); }
void prt2() const { printf("B::prt2\n"); }
};
int main() {B b; b.geta(); }
結果
B::prt
?::prt2
prt3(?)
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5020日前に更新/189 KB
担当:undef