- 168 名前:54 mailto:sage [2007/05/14(月) 21:52:47 ]
- >>55-58
class A { int a; public: A(int i) : a(i) {} A& geta() { return *this; } virtual void prt() const { printf("a:%d\n", a); } }; class B : public A { int b; public: B(int i) : A(0), b(i) {} virtual void prt() const { printf("b:%d\n", b); } }; int main() { B b(100); b.geta().prt(); } これを動かすと「b:100」と表示されて、geta()はA&を戻す筈なのに実際は B&を戻している訳ですよ。B&を返すメソッドを勝手に定義してくれたほうが よっぽど自然だと思うんですが、私が愚かしいこと言ってるんですかね?
|

|