打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++面试题荟萃3
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
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++构造函数和析构函数
Inside Qt Series (四):对象数据存储(C)
解析C++普通局部变量与指针类型的对象变量的应用区别
C++深浅拷贝浅析
算法岗常问的一些C 基础知识
计算机专业面试宝典
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服