More Effective C++ 笔记

来源:互联网 发布:2d图形 旋转矩阵 编辑:程序博客网 时间:2024/04/29 20:32

(一)

总而言之,当需要考虑以下两种情况的时候,你应该使用指针:有可能什么也不指向(这种情况下,你可以把指针设为空值);或者需要能够在不同时候指向不同的对象(这种情况下你可以更改指针的指向)。当你知道总是会指向某一个对象并且还知道一旦指向那个对象,就不会再指向其他对象的时候,应该使用引用。还有一种情况,即当实现某些操作符的时候。

(二)

C++通过引入4种新的类型转换操作符克服了C风格的类型转换的缺点。这4种操作符是:static_cast,const_cast,dynamic_cast以及reinterpret_cast。用法:static_cast<type>(expression),如static_cast<double>(a)。

static_cast与通用的C风格的类型转换,基本上有着同样的能力和含义。它也有与C风格的类型转换同样的限制。const_cast用来去除掉一个表达式的const属性或volatile属性。dynamic_cast仅限于帮助你操纵继承体系。reinterpret_cast的转换结果常常是由(编译器的)实现所定义的,最常见的用法是用来在函数指针之间进行类型转换。

原创粉丝点击