Gle*_*lem 2 c++ inheritance virtual-functions
我在C++中继承有一点问题,我无法弄清楚.
所以,假设我有一些从stl列表派生的类,即:
class Class1: public list<T>{
virtual func1();
}
class Class2 : public Class1<w/e>{
func1();
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是将这些问题传递给函数.我如何正确地将其中一个的实例传递给一个函数,以便它可以使用正确的虚函数,如果任何一个类型的实例都可以传递?我有一段时间没有完成继承和虚函数,所以我在这里有点生疏.(这假设函数不是类的成员函数).
您需要将它们作为参考传递给函数
int function(Class1& obj);
Run Code Online (Sandbox Code Playgroud)
或作为指针;
int function(Class1* obj);
Run Code Online (Sandbox Code Playgroud)
它应该只是简单地调用虚方法的正确版本.
如果你没有其中任何一个传递它们
int function(Class1 obj);
Run Code Online (Sandbox Code Playgroud)
该对象将被复制构造为函数中始终为Class1,并始终调用Class1 :: func1()