小编jer*_*253的帖子

C++:没有匹配的调用函数:为什么需要一个空的构造函数?

当我尝试编译以下代码时:

class a {

  int i;

  public :
  a(int);
};

class b {
  a mya;  
  int j;

  public:
  b(int);

};

a::a(int i2) {
  i=i2;
}

b::b(int i2) {
  mya=a(i2); 
  j=2*i2;
}

int main() {

}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

prog.cpp:21:12: error: no matching function for call to ‘a::a()

 b::b(int i2) {
            ^
prog.cpp:17:1: note: candidate: ‘a::a(int)

 a::a(int i2) {
 ^
prog.cpp:17:1: note:   candidate expects 1 argument, 0 provided
prog.cpp:1:7: note: candidate: ‘constexpr a::a(const a&)’
 class a {
       ^
prog.cpp:1:7: note:   candidate expects 1 …
Run Code Online (Sandbox Code Playgroud)

c++ constructor default-constructor c++11

3
推荐指数
1
解决办法
237
查看次数

标签 统计

c++ ×1

c++11 ×1

constructor ×1

default-constructor ×1