20200406_类型安全

20200406_类型安全

每日小知识

使用everything搜索文件时,前面添加【exe:】可以直接搜索可执行程序,如【exe:qq】。

一、相关术语

  • 类型安全
    类型是否安全,取决于它能否在使用中被外部转换,例如在C语言中int可以隐式转换为double,double可以强转为int,这都是不安全的。

二、笔试题

1、#define DOUBLE(x)x+x, i=5*DOUBLE(5);求i的值
答:宏只是符号替换,没有优先级,所以是5*5+5=30。

2、C++是不是类型安全的?
答:不是。通过reinterpret_cast强制转换两个不同类型的指针。

3、main函数执行以前,还会执行什么代码?
答:main调用之前,还会调用【全局对象】的构造函数。

4、哪些情况只能用initialization list而不能用assignment?
答:当类中含有const、reference成员变量;基类的构造函数都需要初始化列表【initialization list】。

扩展笔试题:若存在15×4=112,则系统采用的是几进制?(腾讯2011)
答:六进制。方法:假设为A进制,把15×4=112按权展开就是:
15 = 1×A1 + 5×A0
4 = 4×A0
112 = 1×A2 + 1×A1 + 1×A0

换成等式:
(A+5)×4 = A2 + A + 2
A2 - 3A - 18 = 0
(A - 6)(A + 3) = 0

因此A有两个值6或-3,但进制不存在负数,所以结果为【六】进制。

验证一下:15转换十进制后是【11】,4转换十进制后是【4】,11×4=44,112转换十进制后是【44】。

知识扩展

C++的四种类型转换。

本文归类

建议归类到【C++】。

明日计划

1、描述内存分配方式以及它们的区别。
2、struct与class的区别?
3、当类A中没有任何成员变量与成员函数时,sizeof(A)的值是多少?

参考文献:

《C++笔试面试宝典2011版.docx》

如何在markdown中打出上标、下标和一些特殊符号
https://www.jianshu.com/p/80ac23666a98

今日收藏:

若存在15×4=112,则系统采用的几进制?_虎课网

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章