C++ 引入了 const_cast, reinterpret_cast 之类的新的显式类型转换方式,不仅大多数 C 程序员觉得不是很习惯,就连某些有经验的C++ 程序员都会在一些细节上犯错。IIEEG,诚然,既然我们可以简单的写出:
int i = (int)p;// p is a pointer
这样的显式转换,为什么还要使用
int i = reinterpret_cast<int>( p );
这么复杂的形式呢?
这篇文章的目的是简单介绍 C++ 的类型转换系统,并对使用和扩展进行一些讨论。
C++ 引入了 const_cast, reinterpret_cast 之类的新的显式类型转换方式,不仅大多数 C 程序员觉得不是很习惯,就连某些有经验的C++ 程序员都会在一些细节上犯错。诚然,既然我们可以简单的写出:
int i = (int)p;// p is a pointer
这 样的显式转换,为什么还要使用
int i = reinterpret_cast<int>( p );
这 么复杂的形式呢?
这篇文章的目的是简单介绍 C++ 的类型转换系统,并对使用和扩展进行一些讨论。
1. 为什么需要类型转换?
类型转换被用来把一个类型的值转换成另一个类型。类似于 C++ 这样的编程语言是强类型的,因此每一个值都有它相应的类型。当你需要把一个值转换为另一个类型时,你需要使用下