C++ C++;基类中虚函数的面向对象返回值
我正在创建一个继承了另一个类的类,它必须返回基类中某个函数的值。。。这是混乱的,所以我会让代码自己说话C++ C++;基类中虚函数的面向对象返回值,c++,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 { p
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() { ... }
但是,它不会在此处返回值
提前感谢您的回复。要调用
getMyVal
的基本定义,只需在调用前加上基本类型名称
return ParentClass::getMyVal();
要调用
getMyVal
的基本定义,只需在调用前加上基本类型名称
return ParentClass::getMyVal();
如果要调用
ParentClass
version的getMyVal()
,请执行以下操作:
bool ChildClass::getMyVal() {
CalculateMassOfSun();
return ParentClass::getMyVal(); // this will call parent version
}
如果要调用
ParentClass
version的getMyVal()
,请执行以下操作:
bool ChildClass::getMyVal() {
CalculateMassOfSun();
return ParentClass::getMyVal(); // this will call parent version
}
谢谢你,杰瑞德。我想我已经试过了——显然不是因为它有效:)谢谢你的帮助。谢谢杰瑞德。我想我已经试过了-显然不是因为它有效:)谢谢你的帮助。谢谢塔斯基诺,我增加了你的答案,因为它是正确的,但是我在贾里德第一个到达那里的时候给了他一个勾号-但是非常感谢你的回答。谢谢塔斯基诺,我增加了你的答案,因为它是正确的,然而,我已经给了贾里德一个记号,因为他是第一个到达那里的——不管多么感谢你的回复。