VS2003で,こんな構造のプログラムを書いた.
class A
{
public:
virtual void run()
{
puts("A::run()");
}
};
class B : public A
{
public:
virtual void run()
{
puts("B::run()");
}
};
class C : public B
{
};
int main(int argc, char* argv)
{
A* a = new A;
A* b = new B;
A* c = new C;
a->run();
b->run();
c->run();
return 0;
}
そしたら,なぜか出力が
A::run()
B::run()
A::run()
となった.
・・・・ええぇぇぇぇ!? なんでやねん.
そして,リビルドしたら直った・・・.
いやいやいやいや.
勘弁してください(TT