1、介绍一下c++的多态
2、运行时多态与编译时多态的区别?
3、c++的静态多态是怎么做到的?为什么函数名相同却可以调到不同的实现呢?
4、函数返回值类型不同也能实现重载吗?
5、两个一模一样的函数,一个使用const修饰,一个不使用const修饰,这两个函数可以进行重载吗?
6、const修饰函数起到了什么作用?哪些变量不能修改?
7、const除了修饰函数,还可以修饰什么?
8、顶层const和底层const的区别
9、指针和引用有什么区别?
10、对同一个变量的指针和引用进行sizeof操作,会有什么区别吗?
11、指针为什么会是4个字节,一定是4个字节吗?对指针做sizeof的结果与什么相关?
12、继续回到动态多态,构造函数可以是virtual吗?为什么不可以是virtual?
13、虚表指针是什么时候初始化的?
14、不考虑使用场景,除了构造函数,给所有函数都声明为virtual的,可以这样做吗?或者推荐这么做吗?有什么负面影响吗?
15、介绍一下static关键字都有什么作用?都可以修饰什么?分别起到什么作用呢?function实现里面对一个局部变量定义static可以吗?
16、c++单例模式,都有哪些实现?预加载和延迟加载各自都有什么问题?都存在安全问题吗?
17、预先加载有什么缺点吗?
18、有两个使用预先加载的单例类,一个类A一个类B,类B的初始化依赖于类A的初始化完成,使用预先加载的方式可以保证能够完成吗?类A类B在两个不同的文件里面(c++对不同文件(编译单元)里面定义的static变量初始化的顺序有保证吗?)不能够做到的话,这种情况知道怎么解决吗?
19、在一个函数内部定义一个static变量,不对其进行加锁,有线程安全的保证吗?c++11以前没有,c++11以后有了,通过c++11语言标准进行保证的。
20、c++11里面用到了哪些东西?
21、引用坍缩的概念有了解吗?(指的就是forward解决的问题,右值引用变成左值的情况)
22、智能指针用过哪些?
23、unique_ptr有哪些特性?
24、shared_ptr有哪些特性?
25、shared_ptr保证线程安全吗?为什么不是线程安全的?
26、vector的扩容过程?
27、vector size和capacity的区别?
28、有什么方法能够避免vector的动态扩容过程呢?