问题:类类型能否转换到普通类型?
类型转换函数
1、C++类可以定义类型转换函数
2、类型转换函数用于将类对象转换为其他类型
3、语法规则(注意,一般类型转换运算符不应该改变待转换对象的内容,因此,类型转换运算符一般被定义为const成员)
代码:
类型转换函数
1、与转换构造函数具有同等的地位
2、使得编译器有能力将对象转换为其他类型
3、编译器能够隐式的使用类型转换函数
有如下代码:
编译器的行为:
因为类型转换函数是隐式执行的,所以无法给这些函数传递实参,淡然也就不能在类型转换运算符的定义中使用任何形参,同时,尽管类型转换函数不负责指定返回类型,但实际上每个类型转换函数都会返回一个对应类型的值。
显示的类型转换:
为了防止隐式类型转换的产生(因为隐式类型转换会带来未知的情况),C++11新标准引入了显示的类型转换运算符(explicit converson operator)
double res = static_cast<double>(si) + 1.3 就是显式的请求类型转换
si = static_cast<SmallInt>(4.4) 就是显式的调用转换构造函数