5D空间

学习总结与经验交流

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  有一类特殊的操作符重载,没有返回类型,这就是类型转换操作符
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
posted on 2011-04-10 23:12 今晚打老虎 阅读(271) 评论(0)  编辑 收藏 引用 所属分类: 学习笔记

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理