Geekband C++ Week2 Notes

  • 两类典型的class

    • 含有指针成员
    • 不含指针成员
    • 指针成员会对class的操作造成一些本质性的影响,主要源于资源的生命期管理
  • 拷贝构造

    • 默认拷贝构造的问题,进行了浅拷贝,这会造成困扰,原有的成员泄露出去了,新成员被多个实例引用
    • 进行深拷贝就好了,自己写拷贝构造函数
  • 赋值运算符同上

    • 另外要注意自身赋值的问题,防止造成内容丢失
  • 三个重要成员函数

    • 拷贝构造
    • 赋值运算符
    • 析构函数
  • 含有指针成员的class必须有拷贝构造函数和赋值运算符,除非禁用

  • 堆和栈

    • 堆栈的概念是和生命期直接相关的,栈上的对象生命期由函数调用来管理,堆上对象的生命期由程序员手工管理,其实这是很好理解的,因为栈区是连续的,重置栈底自然就销毁了对象

    • 堆区对象是完全通过引用被外界持有的,所以需要手动控制生命期

    • 静态成员(类成员)的生命期持续到程序结束,用于共享属性,单例等情况

    • new和malloc的区别,malloc分配出来的是原始内存(void*),new出来的是初始化过的对象

  • 静态变量和静态方法

    • 静态变量和静态方法是被所有类成员所共享的
    • 静态方法只能访问静态成员函数
    • 静态成员必须初始化后才能使用
    • 静态函数可以直接通过类名调用,也可以通过实例调用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Week2 Notes A.三大函数:拷贝构造,拷贝赋值,析构 string class这个不是标准库里的stri...
    古来征战几人回阅读 180评论 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,541评论 1 51
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 1. C++基础知识点 1.1 有符号类型和无符号类型 当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值...
    Mr希灵阅读 18,042评论 3 82
  • 今天下午,在工作群里收到“过冬快乐”的祝福,我才想起今天是冬至。老板通知四点下班,走出大楼,天色已晚,又淅淅沥沥下...
    秋田田阅读 284评论 0 2