类型转换操作符

类型转换操作符
  有一类特殊的操作符重载,没有返回类型,这就是类型转换操作符
operator typename() const
{
   return ...//...是typename类型的
}

  可以这样来理解。转换构造函数是为了将一个其他类型转换到当前类型,重载类型转换操作符则是为了将当前类型转换到其他类型。

注意二义性
比如:
class  Test
{
   Test();
   Test( 
int n );
   
operator int();

   
int value;
}
;

int  main()
{
   Test myObject;
   Test yourObject;
   
int intObject = 33;

   myObject 
= intObject;//可以通过
   myObject = yourObject + 3;//不可以通过。编译器不知道该调用(int)将yourObject转化为int还是调用Test( int )将3转化为Test

你可能感兴趣的:(类型转换操作符)