0
也許我只是非常問我的問題給谷歌,但我沒有找到我的問題的答案。我的麻煩是,我的繼承構造函數調用我的默認基礎構造函數,我真的不明白爲什麼。這是我的簡化版本。爲什麼我的繼承構造函數調用我的基礎默認構造函數
實施例:
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'的ctor ... –
聽起來像你應該重新訪問[良好的C++書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)你總是必須構造派生類的基礎部分。 – NathanOliver
你沒有顯示你的類的定義,並且你沒有聲明「B」來自'A'。我想我們可以從問題標題和提供的輸出中推斷繼承。 –