gpt4 book ai didi

c++ - 派生类构造函数调用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:08 26 4
gpt4 key购买 nike

如果我有一个基类:

class Base{
...
};

和派生类

class Derived : public Base{
...
}

这个派生类是否总是调用基类的默认构造函数?即不带参数的构造函数?例如,如果我为基类定义一个构造函数:

Base(int newValue);

但我没有定义默认构造函数(无参构造函数):

Base();

(我知道这只是声明,不是定义)我得到一个错误,直到我定义了不带参数的默认构造函数。这是因为基类的默认构造函数是派生类调用的构造函数吗?

最佳答案

是的,默认情况下,会调用默认构造函数。您可以通过显式调用非默认构造函数来解决此问题:

class Derived : public Base{
Derived() : Base(5) {}
};

这将调用带参数的基类构造函数,您不再需要在基类中声明默认构造函数。

关于c++ - 派生类构造函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com