⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c++面试题-3.txt

📁 C++面试试题荟萃 网上搜集的一些C++面试试题 有兴趣的朋友可以看看的
💻 TXT
字号:
1、	下面的程序是否有错误,如果有错,请说明原因。
struct A1 { int i; };
A1 a1;
a1.i = 0;
		没有错误
class A1 { int i;};
A1 a1;
a1.i = 0;
有错误,未显示权限定义符缺省为private。

2、	下面程序是否有错,有错,请说明原因。:
char szTest[] = "hello";
char* const psz = szTest;
psz[0] = 'b';
		没有错误,psz指向的字符串指针是常量,指针不能被修改,但指针指向的内容可以修改

3、	在继承层次上,构造函数和析构函数的调用顺序如何?
构造函数:先基类,后派生类
析构函数:先派生类,后基类

4、	如果一个包容器中包含指向对象的指针,当从包容器中删除某个指针时,会析构该指针指向的对象吗?
包容器并不关心存放对象的类型,所以从包容器中删除成员时,仅仅只是从容器中释放该成员占有的空间。如果该成员是一个指向某个对象的指针,由用户保证指针指向对象的内存释放。

5、	如何阻止构造函数的自动转换
首先要理解什么是构造函数的自动转换。
比如有 
class A {….};
class B { B(A&) {…};};
func(B) {};
main() 
{
	A a;
	Func(a);
}
在调用Func(a)时,会自动调用B(A&)构造函数,保证传给Func的参数是B类型。应该采用explicit关键字来防止构造函数的自动转换。

6、	类的成员函数作为回调函数有什么要求?
必须是静态成员函数。

7、	分析代码,给出i, j ,k的结果。
int i = 0, j = 0; k = 0;
if (++i || j++ || ++k ) {}
	主要是注意前置操作符和后置操作符的区别,还要考虑 或操作 在条件判断中的实现(如果一个为真,则不进行后续判断)。
	i = 1, j = 0, k = 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -