C++校招面试题

11 篇文章 0 订阅

C++ static关键字的作用(从elf结构、链接的过程)

答:static可以修饰全局变量、函数局部变量,这些符号在加了staitc后就只能在当前文件可见,其他文件不可用,原因是如函数被static修饰后,在符号表中,符号的作用域就从g(global)变为了l(local)

局部变量本身不产生符号,而是通过**(ebp-偏移量)**来访问

从面向对象来说,static可修饰成员变量、成员方法(不产生this指针)

构造函数和析构函数能否抛出异常,为什么?

构造函数不能抛出异常,这样对象会创建失败,就不会调用对象的析构函数,造成内存泄漏

析构函数不能抛出异常, 后面代码就无法得到执行,可能造成内存泄漏

建议使用智能指针管理对象

拷贝构造函数为什么传引用而不传值?

假设传值

class Test
{
public:
	Test(const Test t);
};
Test t1;
Test t2(t1); // 相当于调用t2.Test(t1) => const Test t(t1) 即t.Test(t1) 会不断的递归调用下去,会直接编译错误 

异常机制有什么用?

可以把代码种所有异常抛到统一的地方进行处理!而不是出异常就exit(0),解决一些可容忍的错误

注:栈是高地址到低地址生长,第一个整形变量位置 ebp-4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值