研发面试——C/C++基础(41-60)


写在最前面

专栏文章的所有问题与答案均来源于各个技术网站、技术博客等。由于当年自己有找工作需要,而面试问题与答案十分零散,不成体系,难以速成,所以收集整理了大量的笔试面试问题,主要包含的板块有:C/C++基础、操作系统、计算机网络、数据库、数据结构与算法、大数据等。

目前因工作原因,自己已经不再需要这些资料,准备清理电脑空间,所以会逐步分享出来。

本篇文章主要讲述的内容是:研发面试中的C/C++基础知识(第41——60题),文章以“一问一答”形式呈现。欢迎大家批评指正。

在这里插入图片描述


41.this指针

在类实例化对象时,只有非静态成员变量属于对象本身,剩余的静态成员变量,静态函数,非静态函数都不属于对象本身,因此非静态成员函数只会实例一份,多个同类型对象会共用一块代码。每个实例化的对象都有独一无二的地址,因此不同的实例对象在调用成员函数时,函数需要知道是谁在调用它,因此引入了this指针。this指针是隐含在对象成员函数内的一种指针。*this表示对象本身,非静态成员函数中才有this,静态成员函数中没有


42.常函数和常对象

常函数修饰的是this指针,即不允许修改this指针指向的值,如果即使是常函数也要执意修改,则可以在成员属性前加mutable关键字。常对象不允许修改属性,不可以调用普通成员函数,可以调用常函数。


43.Delete this合法吗?

Delete this合法,但有前提:(1)必须保证 this 对象是通过new分配的;(2)必须保证调用delete this的成员函数是最后一个调用this的成员函数;(3)必须保证成员函数的delete this后面没有再调用this了;(4)必须保证delete this后没有人使用了。


44.为什么空类的大小不为0?

C++编译器不允许对象为0长度,为了确保两个不同对象的地址不同,空类大小设置为1。


45.静态成员变量和静态成员函数

若将成员变量声明为static,则为静态成员变量,与一般成员变量不同,无论建立多少个对象,都只有一份静态成员变量的拷贝。静态成员变量属于类,所有对象共享。静态变量在编译阶段、对象还没创建时就分配了空间,放到全局静态区。

对于

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JERRY_HUI123

谢谢小主,我会继续努力的!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值