class CBase
{
public:
CBase(int iNum) : m_iNumber(iNum)
{
}
CBase(CBase & oBase)
{
}
protected:
int m_iNumber;
};
class B : public CBase
{
public:
B(int iNum, int iNum2) : CBase(iNum), m_iNumber2(iNum2)
{
}
B(B & oB) : CBase(oB.m_iNumber)
{
m_iNumber2 = oB.m_iNumber2;
}
void show()
{
cout << m_iNumber << " " << m_iNumber2 << endl;
}
private:
int m_iNumber2;
};
如果沒有 B中的 拷貝構造函數 B(B & oB) : CBase(oB.m_iNumber) 后面的初始化CBase(oB.m_iNumber)則會報這樣的錯誤:
error C2512: “CBase”: 沒有合適的默認構造函數可用
當然以下這樣初始化更符合 都是 拷貝構造函數的邏輯:
B(B & oB) : CBase(&oB)