- 指针大小:
- auto自定义:
- 指针和引用的区别##:
- 指针有自己的一块空间,而引用只是一个别名;
- 指针可以被初始化为NULL,而引用必须被初始化;
- 指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能被改变;
- 指针可以有多级指针(**p),而引用只有一级;
- 智能指针:
- C++中的四个智能指针: shared_ptr、unique_ptr、weak_ptr、auto_ptr
- A:智能指针出现的原因:智能指针的作用就是用来管理一个指针,将普通的指针封装成一个栈对象,当栈对象的生命周期结束之后,会自动调用析构函数释放掉申请的内存空间,从而防止内存泄露。
- shared_ptr实现共享式拥有概念。多个智能指针指向相同对象,该对象和其相关资源会在最后一个引用被销毁时被释放。
- unique_ptr实现独占式拥有概念,保证同一时间内只有一个智能指针可以指向该对象。
- weak_ptr 是一种共享但不拥有对象的智能指针, 它指向一个 shared_ptr 管理的对象。进行该对象的内存管理的是那个强引用的 shared_ptr,weak_ptr只是提供了对管理对象的一个访问手段,它的构造和析构不会引起引用计数的增加或减少。weak_ptr 设计的目的是为协助 shared_ptr工作的,用来解决shared_ptr相互引用时的死锁问题。注意的是我们不能通过weak_ptr直接访问对象的方法,可以通过调用lock函数来获得shared_ptr,再通过shared_ptr去调用对象的方法。
- auto_ptr采用所有权模式,C++11中已经抛弃
- Git命令:
- (ubuntu)文件/文件夹的建立:
- tar:(ubuntu):
- new和delete:delete[]什么时候用,是否必须用,什么时候可以不用:有new无delete后果如何,最坏什么情况
- 析构函数:什么时候使用,什