雪傲天1 2023-05-06 20:09 采纳率: 96.2%
浏览 56
已结题

不是说继承不会继承构造函数吗?

class Object
{
protected:
    char Name[5]{};
public:
    Object()
    {
        std::cout << "Object is created" << std::endl;
    }
};
class seeObject:protected Object
{
public:
    int x;
    seeObject()
    {
        std::cout << "seeObject is created" << std::endl;
    }
};
class creature:protected seeObject
{
protected:
    int hp;
public:
    creature()
    {
        std::cout << "creature is created" << std::endl;
    }
};

不是说继承不会继承构造函数吗
为什么这里创建一个creature实例后,会输出三个语句呢?
  • 写回答

1条回答 默认 最新

  • Huazie 优质创作者: 编程框架技术领域 2023-05-06 20:16
    关注

    子类用默认无参的构造方法实例化时,会先要调父类的默认无参的构造方法进行实例化,父类再调用它的父类的。
    所以你看到的是输出的三个类的无参构造函数中的内容。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 已采纳回答 5月23日
  • 创建了问题 5月6日