爱立信 百度

C++四种类型转换:static_cast, dynamic_cast, const_cast, reinterpret_cast?
1)const_cast用于将const变量转为非const。
2)static_cast用的最多,对于各种隐式转换,非const转const,void*转指针等, static_cast能用于多态想上转化,如果向下转能成功但是不安全,结果未知。
3)dynamic_cast用于动态类型转换。只能用于含有虚函数的类,用于类层次间的向上和向下转化。只能转指针或引用。向下转化时,如果是非法的对于指针返回NULL,对于引用抛异常。要深入了解内部转换的原理。
4)reinterpret_cast几乎什么都可以转,比如将int转指针,可能会出问题,尽量少用。
追问:为什么不使用C的强制转换?

为什么要使用智能指针?智能指针的类型?简单实现?什么时候改变引用计数?
1)能处理资源泄露问题;(忘记释放不再使用的内存)
2)能处理空悬指针的问题;(delete之后的野指针)
3)能处理比较隐晦的由异常造成的资源泄露。(程序抛出异常时,导致终止,而已申请的内存并没有释放掉)

C++标准提供的两种类型的智能指针:
1)shared_ptr(共享式拥有):多个智能指针可以指向相同对象,该对象和其相关资源会在“最后一个引用被销毁”时候释放。为了在结构复杂的情境中执行上述工作,标准库提供了weak_ptr、bad_weak_ptr和enable_shared_from_this等辅助类。
2)unique_ptr(独占式拥有):保证同一时间内只有一个智能指针可以指向该对象。它对于避免资源泄露——例如“以new创建对象后因为发生异常而忘记调用delete”——特别有用。
简单实现(改变引用计数):
1)构造函数中计数初始化为1;
2)拷贝构造函数中计数值加1;
3)赋值运算符中,左边的对象引用计数减一,右边的对象引用计数加一;
4)析构函数中引用计数减一;
5)在赋值运算符和析构函数中,如果减一后为0,则调用delete释放对象。
追问:share_prt与weak_ptr的区别:share_ptr可能出现循环引用,从而导致内存泄露,而weak_ptr是一种弱引用指针,其存在不会影响引用计数,从而解决循环引用的问题。


还可以内部维护一个链表实现,更容易定位哪里没释放,分配一次内存就将头节点放入链表


交换2个数据a b 不用第三个数
3) 位运算
通过异或运算也能实现变量的交换,请看以下代码:
int a=10,b=12; //a=1010^b=1100;
a=a^b; //a=0110^b=1100;
b=a^b; //a=0110^b=1010;
a=a^b; //a=1100=12;b=1010;

讲一讲GRE的实现,BFD的实现

模板类的实现
#百度##爱立信##校招##C++工程师#
全部评论
拥塞避免和流量控制 array解决了vecter的什么问题 extern C 解决了什么问题  ? 解决了编译器偷偷的将cpp代码的函数接口改名,导致编译得不到想要的效果
1 回复 分享
发布于 2020-11-24 00:00
请问是实习还是什么呢?是上海还是北京的岗位啊
点赞 回复 分享
发布于 2020-12-09 11:08
注意:static_cast不能转换掉expression的const、volitale、或者__unaligned属性。
点赞 回复 分享
发布于 2021-07-13 16:20

相关推荐

点赞 评论 收藏
分享
hanliu:1. 排版与格式问题字体与对齐问题:标题和内容的字体大小差异不够明显,无法迅速吸引目光。某些文字看起来有些拥挤(比如校园经历中的“班委成员”部分)。2. 内容逻辑性模块顺序问题:实习经历放在较靠后的位置,实际上这部分内容对应聘来说更重要,建议提前突出。细节表述不够突出:比如教育背景部分的专业课程仅仅列出名字,没有说明自己在这些课程中表现如何或者掌握了什么技能,缺乏量化描述。多余内容:例如“班委成员”和“宣传委员”这类校园经历,叙述过于普通,缺乏和岗位相关的实质性贡献。,建议简写。3. 措辞专业性表达不够精准:例如“协助班长与团支书更好地为同学服务”显得较为笼统,没有实际成果的体现。用词重复:如“学习了焊接”“学习了光检”等重复词语较多,缺乏丰富的动词来展示个人能力(如“负责”“优化”“改进”等)。技能展示不足:虽然列出了UG和CAD证书,但没有明确提到这些技能如何在实际工作中发挥作用。4. 技能匹配度技能深度不足:虽然列出了掌握的软件和技术,但没有描述技能水平(如“熟练掌握”“精通”),也没有具体案例支持这些技能。缺乏岗位导向性:比如针对机械设计与制造方向,实习经历提到了“E6尾灯项目”,但没有详细说明自己在其中的技术贡献,可能会显得经验描述泛泛而谈。5. 自我评价问题表达空泛:如“具有良好的沟通协调能力”“责任心强”之类的描述太常见,没有让人眼前一亮的特点。缺乏成果支持:自我评价中的能力没有用具体项目、经历或成就来验证,可信度较弱。 兄弟加油
点赞 评论 收藏
分享
评论
5
39
分享

创作者周榜

更多
牛客网
牛客企业服务