0
点赞
收藏
分享

微信扫一扫

C++ 构造函数中调用虚函数

开源分享 2022-03-11 阅读 64
#include <iostream>

class CObject {
public:
    CObject() {

        /*构造函数中调用虚函数
        此时子类还未构造完成,故此时调用CObject::Test1,等子类构造完成后CMonster::Test1被调用

        输出结果如下:
        CObject-Test1
        CObject-construct
        CMonster-construct
        CMonster-Test1: hp=3000
        */
        
        Test1();

        printf("CObject-construct\n");
    }

    virtual void Test1() {
        printf("CObject-Test1\n");
    }
};

class CMonster : public CObject {
public:

    CMonster() {
        hp = 3000;
        printf("CMonster-construct\n");
    }

    virtual void Test1() {
        printf("CMonster-Test1: hp=%d\n", hp);
    }

private:
    int hp;
};

int main()
{
    auto ot = new CMonster();
    ot->Test1();

}
举报

相关推荐

0 条评论