仮想メソッドに問題があります。呼んだらf
ダメ。なんで?
#include <iostream>
struct A {
virtual void f() const { std::cout << "In A"; }
virtual ~A() {};
};
struct B : A {
void f() const { std::cout << "In B"; }
};
int main()
{
A* a = new A();
B* b = dynamic_cast<B*>(a);
(*b).f();
delete a;
}
何も出力されず、エラーも発生しません。私は何を間違えましたか?