指向类成员的指针

本文内容来源:《C++必知必会》

1 A a;
2 a.a = 5;
3 //int A::*pMemberA = &a.a; //Error! cannot convert 'int *' to 'int A::*'
4 int A::*pMemberA = &A::a;
5 int B::*pMemberB = pMemberA; //implicitly convert 'int A::*' to 'int B::*'
6 //int A::*pMemberA2 = pMemberB; //Error! cannot convert 'int B::*' to 'int A::*'
7 B b;
8 b.a = 2011;
9 printf("b.*pMemberB = %d \r\n", b.*pMemberB); // output: b.*pMemberB = 2011
上例中这种 'int A::*' to 'int B::*' 的单向转换现象被称为"Contravariance",即“逆变性”。

posted on 2011-05-24 17:50  Joshua Leung  阅读(139)  评论(0)    收藏  举报

导航