C++ 我收到以下错误:调用‘;时没有匹配函数;A::A()’;?
我定义了一个类,它的构造函数由3个整数参数组成C++ 我收到以下错误:调用‘;时没有匹配函数;A::A()’;?,c++,class,C++,Class,我定义了一个类,它的构造函数由3个整数参数组成 class A{ int a,b,c; A(int x,int y,int z){ a=x; b=y; c=z; } }; 现在,另一个类定义如下 class B{ A a; B(A x){ a=x; } }; 我得到的错误是 Error: no matching function for call to ‘A::A()’ 有人能帮我定义这两个类吗?您没有正确实现构造函数。您需要使用: 否则,在输入构造函数主体之前,将默认构造成员a。您的类
class A{
int a,b,c;
A(int x,int y,int z){
a=x;
b=y;
c=z;
}
};
现在,另一个类定义如下
class B{
A a;
B(A x){
a=x;
}
};
我得到的错误是
Error: no matching function for call to ‘A::A()’
有人能帮我定义这两个类吗?您没有正确实现构造函数。您需要使用:
否则,在输入构造函数主体之前,将默认构造成员
a
。您的类A
没有默认构造函数,因此会导致错误。必须初始化该A
成员。您不能只分配给它,因为它不能默认构造。看看“会员名单”,我想知道为什么这样的问题经常被否决。每个人都从小事做起,从一个完全的初学者的角度来看,这个问题是有道理的,特别是如果您以前的所有经验都是使用Java,在Java中,类似的代码可以编译并正常工作。它具有可复制、格式正确的代码和清晰的错误消息。这是怎么了?@克里斯蒂娜哈克尔,我想因为我们一遍又一遍的告诉人们,你不能通过学习来学习C++。你需要读一本书,OP显然没有读到。
class B {
A a_;
public:
B(const A& a) : a_(a) {}
};