码迷,mamicode.com
首页 > 编程语言 > 详细

C++面向对象高级开发课程(第二周)

时间:2015-09-09 20:58:25      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

1. 类中含有指针—— class with pointer member(s) ——的情况经常发生,典型的有:string 类。

2. STL中的 string 类太复杂,copy on write 等等特性。

3. 采用“防卫式头文件声明”。

4. s2 赋值给 s3。

String s3("hello"), s2;
s3 = s2;

5. complier 会默认生成:拷贝构造函数 和 拷贝赋值函数(操作符重载),其执行的原理是按位依次赋值。指针的类不适合使用默认的构造函数。

String s3(s1); //拷贝构造
String s2 = s3; //拷贝赋值

6. String 类实现原理

class String
{
  public:
    String(const char* cstr=0);
  private:
    char* m_data; //指针动态分配存储空间
}

String::String(const char* cstr)
{
   if (cstr) {
      m_data = new char[strlen(cstr)+1];
      strcpy(m_data, cstr);
   }
   else {   
      m_data = new char[1];
      *m_data = \0;
   }
}

 

C++面向对象高级开发课程(第二周)

标签:

原文地址:http://www.cnblogs.com/fengyubo/p/4795669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!