operator->和operator->*求解释!
今天看了半天operator->和operator->*好不明其中的意思!求高人指点一下它的原理,顺便举个列子!
[解决办法]
->和->*都是C++中定义的可重载的运算符,其中:->称为成员选择符(member selection),而->*称为成员指针选择符(pointer-to-member selection)。
对于一个类对象A,对->的调用即A->,相当于(A.operator->)->。下面是一个简单的例子:
#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();}