C++面试题总结(二)

C++面试题总结(二)答 可以用引用头文件的方式 也可以用 extern 关键字 如果用引用头文件方式来引用某个在头文件中声明的全局变理 假定你将那个变写错了 那么在编译期间会报错 如果你用 extern 方式引用时 假定你犯了同样的错误 那么在编译期间不会报错 而在

欢迎大家来到IT世界,在知识的湖畔探索吧!

51. 引用与指针有什么区别?

52. 描述实时系统的基本特性

答 、在特定时间内完成特定的任务,实时性与可靠性。

54. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

答 、全局变量储存在静态数据区,局部变量在堆栈中。

55. 堆栈溢出一般是由什么原因导致的?

答 、没有回收垃圾资源

56. 什么函数不能声明为虚函数?

答 :构造函数(constructor)

57. IP地址的编码分为哪俩部分?

答: IP地址由两部分组成,网络号和主机号。

58. 不能做switch()的参数类型是:

答 :switch的参数不能为实型。

59. 如何引用一个已经定义过的全局变量?

答 :可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错

60. 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?

答 、c用宏定义,c++用inline

61. C++是不是类型安全的?

答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)

62. 当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,请解释一下编译器为什么没有让它为零。

答案:为1。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。

63. 简述数组与指针的区别?

64. C++函数中值的传递方式

答:有三种方式:值传递、指针传递、引用传递

65. 内存的分配方式

66. extern”C”有什么作用?

67. 用什么函数开启新进程、线程。

答案:

线程:
CreateThread/AfxBeginThread等

进程:CreateProcess等

68. SendMessage和PostMessage有什么区别

答案:SendMessage是阻塞的,等消息被处理后,代码才能走到SendMessage的下一行。PostMessage是非阻塞的,不管消息是否已被处理,代码马上走到PostMessage的下一行。

69. CMemoryState主要功能是什么

答案:查看内存使用情况,解决内存泄露问题。

70. #include

和 #include “filename.h” 有什么区别?

答:对于#include

,编译器从标准库路径开始搜索 filename.h

对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h

71. 处理器标识#error的目的是什么?

答:编译时输出一条错误信息,并中止继续编译。

72. #if!defined(AFX_…_HADE_H)

#define(AFX_…_HADE_H)

……

#endif作用?

答:防止该头文件被重复引用。

73. 在定义一个宏的时候要注意什么?

答:定义部分的每个形参和整个表达式都必须用括号括起来,以避免不可预料的错误发生

74. 数组在做函数实参的时候会转变为什么类型?

答:数组在做实参时会变成指针类型。

75. 系统会自动打开和关闭的3个标准的文件是?

76. .在Win32下 char, int, float, double各占多少位?

77. strcpy()和memcpy()的区别?

答:strcpy()和memcpy()都可以用来拷贝字符串,strcpy()拷贝以’\0’结束,但memcpy()必须指定拷贝的长度。

78. 说明define和const在语法和含义上有什么不同?

79. 说出字符常量和字符串常量的区别,并使用运算符sizeof计算有什么不用?

答:字符常量是指单个字符,字符串常量以’\0’结束,使用运算符sizeof计算多占一字节的存储空间。

80. 简述全局变量的优缺点?

答:全局变量也称为外部变量,它是在函数外部定义的变量,它属于一个源程序文件,它保存上一次被修改后的值,便于数据共享,但不方便管理,易引起意想不到的错误。

81. 总结static的应用和作用?

82. 总结const的应用和作用?

83. 什么是指针?谈谈你对指针的理解?

84. 什么是常指针,什么是指向常变量的指针?

85. 函数指针和指针函数的区别?

87. 简述Debug版本和Release版本的区别?

答:Debug版本是调试版本,Release版本是发布给用户的最终非调试的版本,

88. 指针的几种典型应用情况?

答:

89. static函数与普通函数有什么区别?

答:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

90. struct(结构) 和 union(联合)的区别?

91. class 和 struct 的区别?

答:struct 的成员默认是公有的,而类的成员默认是私有的。

92. 简述枚举类型?

答:枚举方便一次定义一组常量,使用起来很方便;

93. ASSERT()的作用?

答:ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。

94. 局部变量和全局变量是否可以同名?

答:能。局部会屏蔽全局。要用全局变量,需要使用”::”(域运算符)。

95. 程序的不同变量的不同存储位置

答:局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。

96. 在什么时候使用常引用?

答:如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

97. 类的声明和实现的分开的好处?

98. windows消息系统由哪几部分构成?

99. 什么是消息映射?

答:消息映射就是让程序员指定MFC类(有消息处理能力的类)处理某个消息。然后由程序员完成对该处理函数的编写,以实现消息处理功能。

100.什么叫智能指针?

答:当一个类中,存在一个指向另一个类对象的指针时,对指针运算符进行重载,那么当前类对象可以通过指针像调用自身成员一样调用另一个类的成员。

101. winsock建立连接的主要实现步骤?

102.多态的两个必要条件

答:1.一个基类的指针或引用指向一个派生类对象 2.虚函数

103. 构成Win32 API 函数的三个动态链接库是什么?

答:内核库,用户界面管理库,图形设备界面库。

104.什么时候需要用虚析构函数?

答:当基类指针指向用new运算符生成的派生类对象时,delete基类指针时,派生类部分没有释放掉而造成释放不彻底现象,需要虚析构函数。 补充:虚函数就是让派生类调用基类的虚函数。

105. 什么是平衡二叉树?

答:左右子树都是平衡二叉树,而且左右子树的深度差值的约对值不大于1。

106. 派生新类的过程要经历三个步骤

答:1.吸收基类成员 2.改造基类成员 3.添加新成员

107. 简单介绍GDI?

答: GDI是Graphics Device Interface 的缩写,译为:图形设备接口;是一个在Windows应用程序中执行与设备无关的函数库,这些函数在不同的输出设备上产生图形以及文字输出。

108.在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”?

109. 怎样定义一个纯虚函数?含有纯虚函数的类称为什么?

答:在虚函数的后面加=0,含有虚函数的类称为抽象类。

110. 简述Visual C++ 、Win32 API和MFC之间的关系?

111.怎样消除多重继承中的二义性?

答: 1.成员限定符 2.虚基类

112什么叫静态关联,什么叫动态关联

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/115767.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信