成员解除引用运算符
C++允许定义指向类成员的指针,对这种指针进行声明或解除引用时,需要使用一种特殊的表示法。
例:
class Example
{
private:
int feet;
int inches;
public:
Example();
Example(int ft);
~Example();
void show_in()const;
void show_ft()const;
void use_ptr()const;
};
如果没有具体的对象,则inches成员只是一个标签。也就是说,这个类将inches定义为一个成员标识符,但要为它分配内存。必须声明这个类的一个对象:
Example ob;//现在ob.inches存在
因此,可以结合使用标识符inches和特定的对象,来引用实际的内存单元(对于成员函数,可以省略对象名,但对象被认为是指针执行对象)。
C++允许这样定义一个指向标识符inches的成员指针:
int Example::*pt = &Example::inchers;
这种指针与常规指针有所区别。常规指针指向特定的单元格,而pt指针并不是指向特定的内存单元,因为声明中没有指出具体的对象。指针pt指的是inches成员在任意Example对象中的位置。和标识符inches一样,pt被设计与对象标识符要求使用。实际上。表达式*pt对标识符inches的角色做了假设,因此,可以使用对象标识符来指定访问的对象,使用pt指针来指定该对象的inches成员。例如:类方法可以使用下面得的代码:
int Example::*pt = &Example::inches;
Example ob1;
Example ob2;
Example *pq = new Example;
cout<<ob1.<