因为公司要招聘C++的程序员,所以让我出几道面试题。
基本题
- Class 和 Struct 的区别和联系,Union的区别与联系;
- 面向对象中的Object和实例Instance的区别与联系;
- C++为什么要引入 namespace这个机制,引入后的最大的优点是什么?
- 头文件header.h会被包含在其主调用的CPP代码中,为什么 C++20 还要引入一个新的关键字 import?
- 指针与引用的区别?
int x =2;
int y =3;
int &r1 = x;
int &r2 = y;
r1 = r2;
int x =2;
int y =3;
int *r1 = &x;
int *r2 = &y;
r1 = r2;
提高题
- 解释一个在C++中,程序员什么时候在堆上heap上分配内存,什么时候在栈上分配内存?
- RAII(Resource Acausition is Initilization)资源管理器的特点是依托于栈管理,为什么不能依托于堆呢?
- 什么情况下,不能使用堆进行内存分配?
- 容器的Begin和End,End的最后一个元素吗?
- Vector 是动态数组,List 是双向链表和常规的数组有何不同?