어쩌면 Google에 내 질문을 심하게 묻는 것일 수도 있지만 문제에 대한 답을 찾을 수 없습니다. 내 문제는 내 상속 된 생성자가 기본 기본 생성자를 호출하고 실제로 이유를 얻지 못한다는 것입니다. 여기 내 단순화 된 버전이 있습니다.상속 된 생성자가 기본 기본 생성자를 호출하는 이유
예 :
A.cpp
#include <iostream>
#include "A.h"
using namespace std;
A::A()
{
cout << "A" << endl;
}
B.cpp
#include <iostream>
#include "B.h"
using namespace std;
B::B()
{
cout << "B" << endl;
}
B::B(int x)
{
cout << "B" << x << endl;
}
Source.cpp
#include <iostream>
#include "A.h"
#include "B.h"
using namespace std;
int main() {
B * b = new B();
cout << "---" << endl;
B * b2 = new B(2);
system("PAUSE");
return 0;
}
출력 :
A
B
---
A
B2
Press any key to continue . . .
저는 B 생성자가 무엇을하는지보고 싶습니다. 이와 같이 :
B
---
B2
Press any key to continue . . .
상속 된 생성자가 있습니까? 또한,'B' 타입의 객체를 성공적으로 만들려면 A의 코드를 호출해야합니다. –
[좋은 C++ 책] (http://stackoverflow.com/questions/388242)을 다시 방문해야하는 것처럼 들립니다./the-definitive-c-book-guide-and-list) 항상 파생 클래스의 기본 부분을 구성해야합니다. – NathanOliver
당신은 수업의 정의를 보여주지 않았고 당신은 'B'가 'A'에서 파생되었다는 것을 out-right로 언급하지 않았습니다. 나는 우리가 질문의 제목과 제공된 결과로부터 상속을 추측 할 수 있다고 생각한다. –