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)