当我们在派生类中编写空副本构造函数时会发生什么?

#include <iostream>
using namespace std;

class A {
    int i;
public:
    A(int );
};

A::A(int arg) {
    i = arg;
    cout << "A's Constructor called: Value of i: " << i << endl;
}

// Class B is derived from A
class B: A {
public:
    B(int );
    B(const B& ref)
    {
        cout<<"copy constructor get called"<<endl;
    }
};

B::B(int x):A(x) { //Initializer list must be used
    cout << "B's Constructor called";
}

int main() {
    B obj(10);
    return 0;
}
output:
prog.cpp: In copy constructor ‘B::B(const B&)’:
prog.cpp:20:2: error: no matching function for call to ‘A::A()’
  {
  ^
prog.cpp:10:1: note: candidate: A::A(int)
 A::A(int arg) {
 ^
prog.cpp:10:1: note:   candidate expects 1 argument, 0 provided

添加复制构造函数时出现上述错误。当我删除复制构造函数时,错误已解决。 谁能解释我为什么复制构造函数出错,甚至不使用复制构造函数创建对象?