美文网首页
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

    Week2 Notes A.三大函数:拷贝构造,拷贝赋值,析构 string class这个不是标准库里的stri...

  • Geekband C++ Week2 Notes

    两类典型的class含有指针成员不含指针成员指针成员会对class的操作造成一些本质性的影响,主要源于资源的生命期...

  • GeekBand C++ Week1 Notes

    GeekBand C++ Week1 Notes A.OOP-面向对象编程 1基础:C语言 -变量variable...

  • GeekBand C++ Week7 Notes

    Week7 Notes 容器Containers Stack 也是一个线性容器,是一种先进后出FILO的数据结构,...

  • GeekBand C++ Week8 notes

    Week8 Notes 变易算法: copy:对象拷贝 templateinlineOutIt copy(InIt...

  • GeekBand C++ Week9 Notes

    C++设计模式 为了理解松耦合设计思想,掌握面向对象设计原则 什么是设计模式? 是一种解决方案的核心,可以避免重复...

  • GeekBand C++ Week10 Notes

    工厂方法:factory method 其实是当我们在类里面要实例化一个类的时候,有可能有多种情况出现,需要创建的...

  • GeekBand C++ Week6 Notes

    STL和泛型编程 Week6 Notes 1.模板概念和模板函数 C++模板简介 概观 为什么会有模板这个概念 S...

  • GeekBand C++ Week12 Notes

    系统设计与实践 系统设计介绍 短URL设计 设计一个系统把用户提供的URL转换为短的URL,访问的时候要跳回到原始...

  • GeekBand C++ Week11 Notes

    Week11 Notes “对象性能模式” 单间模式 面向对象很好地解决了抽象的问题,但是不可避免要付出一定的代价...

网友评论

      本文标题:Geekband C++ Week2 Notes

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