面向C ++面向对象的基类中虚函数的返回值

时间:2012-05-15 16:21:18

标签: c++

我正在创建一个继承了另一个类的类,并且必须在基类中返回一个函数的值......这很令人困惑所以我会让代码说明一下......

class ParentClass {
public:
    virtual bool getMyVal();
};

bool ParentClass::getMyVal() {
    return true;   // in my program there is a bit more to it
}

class ChildClass : public ParentClass {
public:
    bool getMyVal();
};

bool ChildClass::getMyVal() {
    CalculateMassOfSun();

    return parent::getMyVal();    // Please make sure you read below...
}

所以这只是我想要做的一个例子,而不是实际的代码。如您所见,在ChildClass :: getMyVal()中,基本上需要进行一些预先计算,然后在父类中运行相同的函数并返回其值。我知道它是父节点中的一个虚函数,而且我还没有以正确的方式调用父节点中的函数 - 它是如何在PHP中完成的,我想到的唯一方法对我来说是有意义的并希望其他人此刻。

那我该怎么做呢?目前,我发现了以下内容:

bool ChildClass::getMyVal() : /*ParentClass::*/getMyVal() { ... }

但是它不会在这里返回值。

提前感谢您的回复。

2 个答案:

答案 0 :(得分:6)

要调用getMyVal的基本定义,只需使用基本类型名称

作为调用的前缀
return ParentClass::getMyVal();

答案 1 :(得分:2)

如果您想拨打ParentClass getMyVal()版本,请执行以下操作:

bool ChildClass::getMyVal() {
    CalculateMassOfSun();

    return ParentClass::getMyVal(); // this will call parent version
}