由于我在派生类中重写了函数returnANumber,因此构造函数应返回“重写”而不是在父类中执行分支。但结果与我的期望不同:\
#include <iostream>
#include <string>
using namespace std;
class NewClass {
public:
NewClass(){
returnANumber();
}
virtual void returnANumber(){
cout << "random number blah blah blah";
}
};
class DeriveClass : public NewClass {
public:
void returnANumber() override {
cout << "overridden";
}
};
int main(){
NewClass NewClass;
DeriveClass DeriveClassInst;
DeriveClassInst.returnANumber();
}
结果:“随机”“随机”“被覆盖” 成员函数似乎最终被覆盖,但它不能与构造函数一起使用。 预期输出:“随机”“覆盖”“覆盖”