定义:类的类型转化函数是用户定义的强制类型转化,可以将类类型转化为其他类型。
特点:
1.转换操作必须定义成类的成员函数。
2.函数名为 operator+目标类型名。
类型转换函数的语法格式为:
class student_info{
public:
operator double(){
//TODO:
return data;
}
} //以上代码将一个student_info类的对象转换为一个double类型的变量
3.以上操作都是隐式操作,采用自动转换。
拓展:
if(cin>>x)
/*等效于下面
cin>>x
if(cin)
*/
我们知道if语句对里面的语句进行判断,该语句生成一个值,准确来说这个值为bool值,所以在使用其他任何一个数学类型或者指针类型的值时都会将它转换一个bool类型。
所以上面iostream既不是数学类型也不是指针,但是标准库中定义了一个从iostream类型为void*类型的转换。而void*是一个指向void类型的指针。标准库中定义了istream::operator void*,它通过检验不同的状态标志来判断istream是否有效,并返回0或者一个自定义的非零void*值以表示流的状态。