如何分辨哪个派生类对象称为基类函数

时间:2019-05-01 09:10:14

标签: c++

我有一个名为Person的基类和两个名为Student和Teacher的派生类。基类有一个称为RegistrationFee的数据成员,两个派生类都使用它。基类中有一个函数对此数据成员(registrationFee)进行处理,但是该函数执行的任务取决于调用func的对象的类型。所以我必须知道函数是通过哪个类对象调用的。 对不起,英语不好:)

1 个答案:

答案 0 :(得分:5)

您需要一个virtual function来覆盖每个特定类中的行为。例如:

class Person
{
public:
    //pure virtual function, i.e a function that doesn't have an implementation
    virtual int registrationFee() = 0;
};

class Student : public Person
{
public:
    int registrationFee() override
    {
        //whatever logic implements this function
    }
};