一、基础部分
1、指针和引用的区别
√
① 初始化
② 是否开辟内存空间
③ Sizeof
④ 加1操作
⑤ 多级指针
⑥ 引用的底层是指针实现的
⑦ 类型检查,防止野指针
⑧ 直接访问,间接访问
⑨ 传引用,传指针
2、形参和实参的区别
① 形参,分配内存空间,函数内部有效
② 实参必须要有确定值
③ 数据传递,是否会改变
④ 在类型、数量、顺序上一致
⑤ 形参实参不是指针类型时的情况
补充:传值、传引用、传指针
3、const用法
①阻止变量被改变,初始化,注意一下类和普通变量的初始化
②和指针的三种搭配
③ 和成员函数的三种搭配
④ 常函数能访问非常对象/常对象的什么
⑤ 非常函数能访问非常对象/常对象的什么
⑥ Const_cast
⑦ 只有指针传递和引用传递可以用是否加const来重载
4、extern
①修饰变量
②修饰函数
③指示C或者C++函数的调用规范
5、深拷贝和浅拷贝
√
区别:有无开辟新的内存空间
6、类成员的初始化方式,哪一种要快一些
①列表初始化
②赋值初始化
(new)必须要使用成员列表初始化的情况,四个
在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序
7、static用法
8、静态变量什么时候初始化
9、C语言中的struct和C++中的struct的区别
1、用户自定义类型和抽象数据类型,C++中的支持函数
2、一个没有权限的设置,一个有
3、C中的在声明结构标记的时候,需要加上struct,才能做结构类型名
、构造函数、析构函数
、虚函数
构造函数:
特点:和类同名,没有返回值,可以重载,必须是public,不能声明成const
作用:实例化对象->分配内存->调用构造函数->起到初始化的作用
什么时候起作用:对象被定义的时候
分类:
1、默认构造函数;(不接受任何参数)
2、拷贝构造函数
3、拷贝赋值构造函数;(类的构造可以用重载赋值运算符来实现,即"=")
4、移动构造函数;**左值右值**
5、
构造函数的分类
析构函数:
特点:
作用:
如何起作用:
什么时候会析构:1、生命周期结束2、delete3、成员类对象
构造函数和析构函数的执行顺序:
基类,成员类对象,派生类
虚函数:
静态绑定:
动态绑定:
纯虚函数:
抽象类:
面向对象三大特性
封装:
定义:隐藏对象的属性和实现细节,仅对外公开接口,控制程序中属性的读和修改的访问级别
。
作用:对外提供接口(公有的函数可以在类外被访问),对内提供数据
优点:
继承
多态
重载
重写
重定义
类与类的三种关系,特性以及优缺点
组合
使用
继承
二、STL
vector
list
deuep
map
三、内存
四、新特性
左值右值
五、手写代码
手写C实现C++中的继承和多态
手写单例模式(线程安全版本)
手写智能指针
手写模板函数