struct struct1
{};
struct struct2:public struct1
{};
class Base
{
public:
virtual void foo(struct1 *s)
{
cout<<"foo in Base"<<endl;
}
};
class Der:public Base
{
public:
virtual void foo(struct2 *s)
{
cout<<"Foo in Der"<<endl;
}
};
int main()
{
struct2 s;
Base *b = new Der();
b->foo(&s);
}
main で関数を呼び出すと、Base のメンバーが呼び出されます。"foo in Base" が出力されます。Derived クラス関数が struct1 ポインターを受け取ると、"foo in Der" が出力されます。しかし、struct2ポインタを取り、「foo in Der」を表示させる方法はありますか