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”