我正在尝试创建一个具有多个子级的模板类,这些子级覆盖模板的方法(我相信我这样做是正确的)。然后我想要一个可以与所有孩子一起使用的函数。
例如:
#include <iostream>
using namespace std;
class base{
public:
virtual void print(void){
cout << "Base" << endl;
}
};
class inherit_a : public base{
public:
virtual void print(void) override{
cout << "inherit_a" << endl;
}
};
class inherit_b : public base{
public:
virtual void print(void){
cout << "inherit_b" << endl;
}
};
void print_function(base item){
item.print();
}
int main(){
inherit_a item_a;
print_function(item_a);
return(0);
}
这会像我期望的那样打印“base”,但是我希望它使用inherit_a
's print 方法或inherit_b
's print 方法(如果inherit_b
被归为print_function
. 这样的事情可能吗?