斜树的空间

集中精力,放弃一切的去做一件事情,只要尽力了,即使失败了,你也不会后悔!

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  47 随笔 :: 0 文章 :: 12 评论 :: 0 Trackbacks

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) 


posted on 2010-04-16 20:08 张贵川 阅读(1361) 评论(0)  编辑 收藏 引用 所属分类: C++基础学习

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理