第一题里关于多文件定义全局变量这个问题,答案应该是不确定的。可以参考Google C 编程规范,里面明确规定,禁止定义全局非POD类型的对象。原因就是多文件全局初始化顺序不确定。第二题里关于多态和dynamic_cast,这种继承关系的类会在头部几个字节添加runtime信息,具体是什么样的结构想不太起来了,侯捷老师翻译的《C 对象模型》里有详细的介绍。dynamic_cast有的实现好像是会去比较两个类的runtime信息是否一致,里面甚至会用到字符串匹配,所以dynamic_cast效率比较其他几种转换会低一些。dynamic_cast转换引用时,发生失败不会返回空指针,而是会抛出异常,如果用到一定要特殊处理一下。
点赞 3

相关推荐

神哥不得了:神哥来啦~ JVm可以写在juc的下面,另外的话,项目亮点的话再重新用star法则再改一遍,其余的东西写的还是非常的好的
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
牛客网
牛客企业服务