我正在编写 A 类,它有一个初始化值的构造函数。我正在另一个 B 类中创建 A 类的实例,如下所示:
#include <iostream>
class A {
public:
int value;
A(int value) {
this->value = value;
}
void print_string() {
std::cout << "talking...";
}
};
class B {
public:
A new_a;
B(int b_value) {
new_a = A(b_value);
}
void print_from_A() {
new_a.print_string();
}
};
int main() {
B b(23);
b.print_from_A();
return 0;
}
但是,我对syntax
这段代码有错误,它说no default constructor exist for class A
。什么我想要的是:
1使类 A 的实例在类 B 中成为全局实例,以便类 B 中的其他方法可以访问它。
2通过调用它的构造函数来初始化类 A 中的值,并通过类 B 传递值
没有默认构造函数A
。您应该使用成员初始值设定项列表
B(int b_value): new_a(b_value) {
}
你的构造函数
B(int b_value) {
new_a = A(b_value);
}
尝试默认初始化new_a
然后分配A(b_value)
给它。但是没有默认构造函数就不可能进行默认初始化。您应该始终使用成员初始值设定项列表:
A(int value): value(value) {
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句