[英]I am getting the following Error: no matching function for call to ‘A::A()’?
我定义了一个类,其构造函数由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()’
有人可以帮我定义这两个类吗?
您没有正确实现构造函数。 您需要使用成员初始化列表 :
class B {
A a_;
public:
B(const A& a) : a_(a) {}
};
否则,将在输入构造函数的主体之前默认构造成员a_
。 您的A
类没有默认的构造函数,因此会导致错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.