箭头操作符与其他的操作符不同,它可能表现的与二元操作符一样: 接受一个对象和一个成员名,对对像进行解引用.但是不管怎么样,箭头操作符不接受显式形参.
如:
1 class A{
2 public:
3 void why(){return ;}
4 a * 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