我有两个类都扩展了一个父类。我想编写一个函数,它可以采用任一类但调用子函数。
即:
class employee
{
public:
employee();
virtual ~employee();
int wage;
int hours;
virtual int calculatePay() =0;
};
class factoryWorker : public employee
{
public:
factoryWorker();
int calculatePay();
};
class manager : public employee
{
public:
manager();
int calculatePay();
};
在 main.cpp 文件中我有一个函数
int getPay(employee anyTypeOfWorker) {
return anyTypeOfWorker.calculatePay();
}
但是这个函数总是调用父(员工)calculatePay() 函数而不是覆盖函数。
谢谢。
最佳答案
通过地址传递。
int getPay(employee* anyTypeOfWorker) {
return anyTypeOfWorker->calculatePay();
}
关于c++ - 接受两个子类之一并在它们上调用相同函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975301/