そういえば、階層の途中で仮想関数にしたら、どうなるんだろう?
ということで、ふと試してみた。
class A {
void func() { cout << "call A" << endl;}
};
class B : public A {
virtual void func() { cout << "call B" << endl; }
};
class C : public B {
void func() { cout << "call C" << endl; }
};
int main() {
Parent* p = new C();
p->func();
Child* c-> new C();
c->func();
}
call A
call C
そこから仮想関数って感じなのか。C#ではどうなんだろう。今度試さねば。
そういえば、とあるC#のテキストではoverrideでのオーバーライドは載っているのに、newでの基底クラスの関数の上書き?打ち消し?は載っていなかった。あんまり使わないんだろうか、new?
Remember the Milkを使い始める。Evernoteにtodoが入っていると分かりにくいので、Remember the Milkに移動。GmailのToDoは結局使わなかったな。便利そうに見えたんだけど。