蚂蚁金服C++面经附解答.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NOWCODER 牛客网——IT 笔试/面试题库 校招历年笔试面试真题,尽在牛客网 蚂蚁金服C++一二三面面经+HR+口头offer确认,附解答 楼主8号内推的蚂蚁,29号面完所有流程,一二面隔的时间有点远了,有 些问题记不太清,这里把能想到的都写下来吧。 一面 (1小时,P7) 前面10分钟简单聊了下研究方向。后面全程C++。 Q:主要语言是C++是吧,那我们先来考察一下C++的基础。 A: 好的。 Q:C++里是怎么定义常量的?常量存放在内存的哪个位置? A:常量在C++里的定义就是一个top-level const加上对象类型,常量定 义必须初始化。对于局部对象,常量存放在栈区,对于全局对象,常量存放在全 局/静态存储区。对于字面值常量,常量存放在常量存储区。 Q:你刚刚说到了const,const修饰成员函数的目的是什么? A:const修饰的成员函数表明函数调用不会对对象做出任何更改,事实上, 如果确认不会对对象做更改,就应该为函数加上const限定,这样无论const 对象还是普通对象都可以调用该函数。 Q:那如果同时定义了两个函数,一个带const,一个不带,会有问题吗? A:不会,这相当于函数的重载。 Q:C++ 类内可以定义引用数据成员吗? A:可以,必须通过成员函数初始化列表初始化。 Q:new/delete与malloc/free的区别是什么? 牛客网,程序员学习、备考、求职题库 NOWCODER 牛客网——IT 笔试/面试题库 校招历年笔试面试真题,尽在牛客网 A:首先,new/delete是C++的关键字,而malloc/free是C语言的库函数, 后者使用必须指明申请内存空间的大小,对于类类型的对象,后者不会调用构造 函数和析构函数。 Q:你博客里提到了隐式类型转换,能简单说说吗? A:首先,对于内置类型,低精度的变量给高精度变量赋值会发生隐式类型 转换,其次,对于只存在单个参数的构造函数的对象构造来说,函数调用可以直 接使用该参数传入,编译器会自动调用其构造函数生成临时对象。 Q:如何避免? A:explicit关键字。 Q:说说你了解的类型转换。 A:C++类型转换有四种。 (这四种请大家自己去查) Q:说说reinterpret_cast. A: 这种是不常用的,可以用于任意类型的指针之间的转换,对转换的结果 不做任何保证,可能被用于哈希 (此处不确定)。 Q:说说dynamic_cast A: 这种其实也是不被推荐使用的,更多使用static_cast,dynamic本身只 能用于存在虚函数的父子关系的强制类型转换,对于指针,转换失败则返回 nullptr,对于引用,转换失败会抛出异常。 Q:说说const_cast A:事实上的用途还是很普遍的。对于未定义const版本的成员函数,我们 通常需要使用const_cast来去除const引用对象的const,完成函数调用。另 外一种使用方式,结合static_cast,可以在非const版本的成员函数内添加 const,调用完const版本的成员函数后,再使用const_cast去除const限定。 牛客网,程序员学习、备考、求职题库 NOWCODER 牛客网——IT 笔试/面试题

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档