오류가 발생합니다. B에 대한 적절한 기본 생성자가 없습니다. 그러나 컴파일러에서 기본 생성자를 호출하는 이유를 이해하지 못합니다. 인수 ii에 전화를 걸고 DONT를 호출하려고합니다. 기본값.상속 : 적절한 기본 생성자를 사용할 수 없습니다.
#include <iostream>
using namespace std;
class A {
int i;
public:
A(int ii) { i = ii; cout << "Constructor for A\n"; }
~A() { cout << "Destructor for A\n"; }
void f() const{}
};
class B {
int i;
public:
B(int ii) { i = ii; cout << "Constructor for B\n"; }
~B() { cout << "Destructor for B\n"; }
void f() const{}
};
class C:public B {
A a;
public:
C() { cout << "Constructor for C\n"; }
~C() { cout << "Destructor for C\n"; }
void f() const {
a.f();
B::f();
}
};
class D:public B {
C c;
public:
D(int ii) { B(ii); cout << "Constructor for D\n"; }
~D() { cout << "Destructor for D\n"; }
};
int main() {
D d(47);
}
알았어요. 고마워요. – talha099
C도 B를 상속합니다. –
똑같은 해결책이 맞습니까? – mfontanini