美文网首页
Geekband C++ Week2 Notes

Geekband C++ Week2 Notes

作者: current | 来源:发表于2016-03-06 20:10 被阅读22次
    • 两类典型的class

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

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

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

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

    • 堆和栈

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

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

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

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

    • 静态变量和静态方法

      • 静态变量和静态方法是被所有类成员所共享的
      • 静态方法只能访问静态成员函数
      • 静态成员必须初始化后才能使用
      • 静态函数可以直接通过类名调用,也可以通过实例调用

    相关文章

      网友评论

          本文标题:Geekband C++ Week2 Notes

          本文链接:https://www.haomeiwen.com/subject/ygyakttx.html