1

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

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() { ... }

但是它不在这里返回值。

提前感谢您的回复。

4

2 回答 2

6

要调用基本定义,getMyVal只需在调用前加上基本类型名称

return ParentClass::getMyVal();
于 2012-05-15T16:24:01.713 回答
2

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

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

    return ParentClass::getMyVal(); // this will call parent version
}
于 2012-05-15T16:28:00.473 回答