快捷搜索: 王者荣耀 脱发

11道C++常见面试题以及答案(2022)

一、面试问题

1.引用有什么特点?

2.什么是函数重载?

3.什么是构造函数?

4.什么是析构函数?

5.什么是拷贝构造函数?

6.const关键字的特点?

7.static关键字的特点?

8.实现动态多态需要具备什么条件?

9.C++中哪些运算符不能重载?

10.C++中Heap(堆)和Stack(栈)的区别是什么?

11.C++中有没有纯虚构造函数?

二、面试问题以及参考答案

1.引用有什么特点? 参考答案: 1.引用不占用内存空间,与引用的对象共用空间,引用必须初始化。 2.引用与引用对象的类型必须一致。 3.一个引用只能引用一个对象,一个对象可以被多次引用,一个引用可以被另一个引用引用。

2.什么是函数重载? 参考答案: 在同一个作用域内,函数名称相同,函数参数列表不同。

3.什么是构造函数? 参考答案: 构造函数是类的成员函数,函数名与类相同,函数没有返回值(返回值也不能是void),函数在创建类对象时自动调用(初始化操作),如果没有自定义构造函数系统会自己生成一个不带参数的构造函数。

4.什么是析构函数? 参考答案: 析构函数是类的成员函数,函数名称是类名称前面再加~,函数没有返回值(返回值也不能是void),在对象销毁时自动调用。

5.什么是拷贝构造函数? 参考答案: 拷贝构造函数也是类的成员函数,函数的参数就是这个类对象的引用,如果没有自定义拷贝构造函数系统会默认生成一个(浅拷贝),如果自定义了,系统就不再生成。

6.const关键字的特点? 参考答案: 1.const修饰的变量不能被修改。 2.const修饰的变量必须定义时就初始化。

7.static关键字的特点? 参考答案: 1.修饰全局变量时,该变量只能在同一文本内使用。 2.修饰局部变量时,该变量的值不会因为函数的终止而丢失。 3.修饰函数时,该函数只能在同一文本被调用。 4.修饰类的成员函数时,该成员函数被该类的所有对象共享数据。

8.实现动态多态需要具备什么条件? 参考答案: 1.虚函数。 2.继承。 3.父类指针指向子类对象。 4.弗雷指针访问虚函数。

9.C++中哪些运算符不能重载? 参考答案: 1 .(成员访问运算符) 2 .*(成员指针访问运算符) 3 ::(域运算符) 4 sizeof关键字 5 ?:(条件运算符)

10.C++中Heap(堆)和Stack(栈)的区别是什么? 参考答案: Heap是堆,Stack是栈。Stack的空间由操作系统自动分配/释放,Heap上的空间是由程序员手动分配和释放的。Stack空间有限,Heap是很大的自由存储区。

11.C++中有没有纯虚构造函数? 参考答案: 没有,构造函数不能是虚的,只能有虚的析构函数。

经验分享 程序员 微信小程序 职场和发展