读书人

operator-gt;跟operator-gt;求解释

发布时间: 2012-09-12 09:21:30 作者: rapoo

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();} 

读书人网 >C++

热点推荐