繁体   English   中英

我收到以下错误:没有匹配的函数来调用'A :: A()'?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM