设为首页 加入收藏

TOP

C++拷贝构造函数的几个细节(二)
2013-10-17 09:06:22 来源: 作者: 【 】 浏览:281
Tags:拷贝 构造 函数 细节

 

  Test2(){ m_pChar = NULL;}

  Test2(char *pChar) { m_pChar = pChar;}

  Test2(int num)

  {

  m_pChar = new char[num];

  for(int i = 0; i< num; ++i)

  m_pChar[i] = 'a';

  m_pChar[num-1] = '\0';

  }

  Test2(const Test2& test)

  {

  char *pCharT = m_pChar;

  m_pChar = new char[strlen(test.m_pChar)];

  strcpy(m_pChar, test.m_pChar);

  if(!pCharT)

  delete []pCharT;

  }

  Test2& operator = (const Test2& test)

  {

  if(this == &test)

  return *this;

  char *pCharT = m_pChar;

  m_pChar = new char[strlen(test.m_pChar)];

  strcpy(m_pChar, test.m_pChar);

  if(!pCharT)

  delete []pCharT;

  return *this;

  }

  private:

  char *m_pChar;

  };

  int main(int argc, char* argv[])

  {

  const Test1 ts(1); // Test1()

  const Test1* p_ts = &ts;

  const Test1 ts2(ts); //Test(const Test1& test)

  const Test1 ts3 = ts; //Test(const Test1& test)

  Test1 ts4; ts4 = ts;  //Test1& operator = (const Test1& test)

  Test2 t(5);

  Test2 t2(t);

  Test2 t3 = t2;

  Test2 t4; t4 = t;

  return 0;

  }

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++函数重载实现原理浅析 下一篇在程序中用C++支持多国语言

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: