C++ 类型转换运算符
#include<iostream>usingnamespace std;classSmallInt{public:/*** implicit constructor* 实现int类型转换为SamllInt类型*/SmallInt(constint val): value(val){cout <<"SmallInt(const int val)"<< endl;}/*** class-type conversion* 无显式返回类型* 无形参* 必须定义成类的成员函数* 一般被定义成const类型*/operatorint()const/* SmallInt类型在需要的时候会转化为int类型 */{cout <<"operator int()const"<< endl;return value;}int getValue()const{return value;}private:int value;};void testTypeConversion(){SmallInt smallInt =1;/* SmallInt smallInt = SmallInt(1) */cout << smallInt.getValue()<< endl;cout << smallInt +2<< endl;}void testTypeConversion2nd(){SmallInt smallInt =3.14;/* 3.14转化为int型为3 */cout << smallInt.getValue()<< endl;cout << smallInt +3.14<< endl;/* SmallInt类型先转化为int,再转化为double*/}int main(){testTypeConversion();testTypeConversion2nd();return0;}
运行结果如下图所示:


浙公网安备 33010602011771号