gpt4 book ai didi

c++ - 从没有默认构造函数的类继承的类

转载 作者:可可西里 更新时间:2023-11-01 18:03:43 24 4
gpt4 key购买 nike

现在我有一个 A 类继承自 B 类,而 B 没有默认构造函数。我正在尝试为 A 创建一个构造函数,它具有与 B 的构造函数完全相同的参数

struct B {
int n;
B(int i) : n(i) {}
};

struct A : B {
A(int i) {
// ...
}
};

但我得到:

error: no matching function for call to ‘B::B()’
note: candidates are: B::B(int)

我该如何解决这个错误?

最佳答案

构造函数应该是这样的:

A(int i) : B(i) {}

冒号后面的位表示“使用其int构造函数初始化该对象的B基类子对象,值为i”。

我猜你没有为 B 提供初始化程序,因此默认情况下编译器会尝试使用不存在的无参数构造函数对其进行初始化。

关于c++ - 从没有默认构造函数的类继承的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3714162/

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