但是如果你使用变量呢?考虑这种情况:
int i1 = 10;int i2 = 4;float f = i1 / i2;变量f将结束的值为2。我们如何告诉编译器,我们想使用浮点除法而不是整数除法?答案是使用类型转换操作符(通常称为一个转换)来告诉编译器做显式类型转换。一个铸造代表一个明确的要求由程序员做一个类型转换。型铸造在C++中,有5种不同类型的转换:C风格转换,静态模型,动态模型,并将const,reinterPRet cast。我们将在本课C风格转换和静态模型。动态转换将保存到覆盖指针和继承之后。const转换和reinterpret cast一般应避免因为他们在罕见的情况下才有用,可能是有害的如果使用不当。规则:避免const转换和reinterpret cast的除非你有一个很好的理由去使用它们。C风格转换在标准C语言编程中,转换是通过()运算符来完成的,将类型的名称转换为内部。例如:123int i1 = 10;int i2 = 4;float f = (float)i1 / i2;因为C风格转换不在编译时由编译器检查,C风格转换可以是固有的滥用,因为他们会让你做的事情,可能是没有道理的,比如去掉const或更改数据类型不改变基本的表示(导致垃圾结果)。因此,C风格转换一般应避免。规则:避免C风格转换static_castC++引入了一个叫做static_cast铸造操作员。你以前见过用来转换为int,char,性病static_cast::cout打印而不是一个字符的整数:
新闻热点
疑难解答