关于在构造函数中使用覆盖的困惑

时间:2017-01-04 11:45:03

标签: c++

由于我在派生类中重写了函数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();
        }

结果:“随机”“随机”“被覆盖” 成员函数似乎最终被覆盖,但它不能与构造函数一起使用。 预期输出:“随机”“覆盖”“覆盖”

0 个答案:

没有答案