【初心者歓迎】C/C++室 Ver.37【環境依存OK】 at TECH
[2ch|▼Menu]
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