c++ - 派生类构造函数初始化列表时,基类没有默认构造函数

标签 c++ constructor derived-class initializer-list

我刚刚读了Constructors and initialization of derived classes
我遇到了一个问题。代码如下。
问题是当我评论父亲的默认构造函数时。会有错误。
但是默认构造函数不应该由编译器自动创建?
谢谢你回答我的问题。

#include <iostream>
using namespace std;
class Father{
public:
    int food;
    Father(){} //  father default constructor 
    Father(int f):food(f){
    }
};
class Child: public Father{
public:
    int beverage;
    Child(int b):beverage(b){
    }
};   
int main(int argc, const char * argv[])
{
    Child c(10);
    return 0;
}

最佳答案

如果至少存在一个用户定义的构造函数,则不会生成默认构造函数。在您的情况下,您有一个。

关于c++ - 派生类构造函数初始化列表时,基类没有默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20173877/

相关文章:

c++ - 比较基类的 2 个派生对象

c++ - Eclipse 不解析 avcodec_send_packet()

C++ 暴力破解 XOR 密码

kotlin - 为什么 Kotlin 不提示歧义?为什么要调用辅助构造函数?

Java封装的Array mutator方法

c++ - 我将如何使用调用相同构造函数的静态成员函数创建两个矩阵(所有值为 Ones 或值 Zeros)?

c++ - 在派生类上应用父类(super class)测试

C++ 将派生类的成员函数指针作为参数传递时选择了错误的模板特化

c++ - 指针变量大小

c++ - 如何在 CMake 中使用 CCache?