[HORSETAIL]

花儿,总会有谢的时候

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  11 随笔 :: 21 文章 :: 7 评论 :: 0 Trackbacks
         箭头操作符与其他的操作符不同,它可能表现的与二元操作符一样: 接受一个对象和一个成员名,对对像进行解引用.但是不管怎么样,箭头操作符不接受显式形参.
       如:
 1 class A{
 2 public:
 3 void why(){return ;}
 4 * operator ->()const{return this;}
 5 };
 6 
 7 int main()
 8 {
 9    A   Pos;
10    Pos->why();  //展开后: Pos.operator->()->why()
11 return 0;
12 }
13 

可以看出,在运用了自定义的箭头操作符后,编译器还会暗地里为我们运行一次箭头操作符.为此,我们在自定义操作符的时候,函数返回类型应该是类的指针或者具有自定义类的类!!我想,这也是自定义箭头操作符的约束吧!!1
posted on 2007-02-05 13:17 [HORSETAIL] 阅读(727) 评论(3)  编辑 收藏 引用 所属分类: 学习随笔

评论

# re: 重载操作符 -> 2007-02-06 12:01 gql
这应该不算约束。
这个特性有个非常优雅的使用,那就是为智能指针加入多线程的访问控制,非常完美,不像过程式编程中先get()资源在release()资源的的繁琐操作中并由于漏掉release()而使资源泄露。  回复  更多评论
  

# re: 重载操作符 -> 2007-02-06 16:39 [HORSETAIL]
恩~~这也是道理!!谢谢你的评论哈!!  回复  更多评论
  

# re: 重载操作符 ->[未登录] 2008-07-24 01:59 bo
不明白后面为什么会自动加上 ->  回复  更多评论
  


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