首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

operator->跟operator->求解释

2012-09-12 
operator-和operator-*求解释!今天看了半天operator-和operator-*好不明其中的意思!求高人指点一下它

operator->和operator->*求解释!
今天看了半天operator->和operator->*好不明其中的意思!求高人指点一下它的原理,顺便举个列子!

[解决办法]
->和->*都是C++中定义的可重载的运算符,其中:->称为成员选择符(member selection),而->*称为成员指针选择符(pointer-to-member selection)。
对于一个类对象A,对->的调用即A->,相当于(A.operator->)->。下面是一个简单的例子:

C/C++ code
#include <iostream>class A {public:  void Do() {     std::cout << "A is doing something" << std::endl;   }};class B {public:  B() : pa(new A) {}  ~B() { delete pa; }  A* operator-> () {     return pa;   }private:  A *pa;};void main(){  B b;  b->Do(); // 相当于调用(b.operator->)->Do();} 

热点排行