c++ - 接受两个子类之一并在它们上调用相同函数的函数

标签 c++ class inheritance object

我有两个类都扩展了一个父类。我想编写一个函数,它可以采用任一类但调用子函数。

即:

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/

相关文章:

c++ - 为线程安全写入映射中的队列时互斥

c++ - 如何导出从 Visual Studio 中显式实例化的模板派生的类?

c++ - 如果作为基类型引用传递,派生类型是否解构?

java - 如何继承同一个类中的方法? java

C++ MFC 属性并获取选中的子项

c++ - 为什么 "unsigned int"+ "unsigned int"返回 "unsigned int"?

c++ - 在 windows.h 中使用 GetProcAddress() 时出现奇怪的编译器消息

python - 在python中从一个实例的成员为另一个实例创建一个函数

java - 在Java中,有没有一种方法可以从该类创建/使用的对象内部访问该对象?

Java ArrayList,抽象类返回ArrayList的访问方法