ポインターなしで仮想関数を使用するとどうなりますか? 例えば:
#include <iostream>
using namespace std;
class Parent
{
public:
Parent(int i) { }
virtual void f() { cout<<"Parent"<<endl; }
};
class Child : public Parent
{
public:
Child(int i) : Parent(i) { }
virtual void f() { Parent::f(); cout<<" Child"<<endl; }
};
int main()
{
Parent a(2);
Parent b = Child(2);
a.f();
b.f();
return 0;
}
^^なぜうまくいかないのですか?仮想メソッドが実際にどのように機能するかについては、どこで確認できますか?