程序员面试

1.内联函数和宏的差别

内联函数要做参数类型检查,这是内联函数和宏相比的优势

2.指针和引用的区别

1>.非空区别。一个引用不能指向空值,必须指向一个对象。指针可以为空。

2>.合法性区别。使用引用不用检测其合法性,但指针必须先检查是否合法。

3>.可修改区别。指针在初始化之后还可以修改其指向的内容,但是引用在初始化指向的对象后将不能改变,但是对象内容可以改变。

3.C++中有了malloc/free,为什么还有new/delete?

对于非内部数据类型的对象而言,malloc/free不能满足动态对象的需求,因为对象在创建时要执行构造函数,消亡时调用析构函数,这些都是malloc无法满足的。new和delete可以满足并实现对象的要求。malloc和free是库函数,而new和delete是运算符。

4.句柄和指针的区别和联系

句柄是一个指向指针的指针。windows是一个以虚拟内存为基础的操作系统。Windows内存管理器中的对象经常会变换地址。

Windows使用句柄标记系统资源,隐藏系统信息,是个32bit的uint。指针标记某个物理内存地址,两者是截然不同的概念。

5.简要介绍一下STL和包容器

STL 是标准模版库,现已成为C++的标准配置,它是一个基于模版的容器类库,包括链表,列表,队列和堆栈,包含许多常用的算法,如查找,排序等,其目的是提供对常用需求重新开发的一种替代方法。

包容器是包容其他对象的对象。可以帮助程序员处理常用的任务。

6. 面向对象技术的基本概念

对象,类和继承

7. C++的空类默认产生哪些类成员函数?

默认构造函数,析构函数,拷贝构造函数,赋值函数

8. 哪一种成员变量可以在同一个类的实例之间共享

静态成员变量

9. 为什么析构函数可以为虚函数,构造函数不能为虚函数?

虚函数采用虚调用的方法,虚调用允许调用一个只知道接口而不知道具体对象类型的函数,但是如果要构造一个对象,就必须知道对象的准确类型,所以构造函数不能为虚函数。

10. 虚函数的代价

虚函数的对象必须维护一个V表,因此在使用虚函数时会产生系统开销


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值