C++拾遗--类成员指针
前言
类成员的类型与一般类型不同,那么类成员的指针类型自然与一般类型的指针有所区别。我们有必要来探讨下类成员指针的使用。
正文
类成员指针是指可以指向类的非静态成员的指针。它的类型包括了类类型和所指向的成员类型。一般而言,指针指向的是对象,而类成员指针指向的是类成员而非类对象。
需要指出,类成员指针不是可调用对象,要想通过类成员指针调用类成员,需结合类对象或类指针。静态类型成员属于类,类型与普通指针相似。
数据成员指针
一般的声明形式:
成员类型 classname::*p;
它的赋值形式:
p = &classname::类数据成员;
这里的取地址符&,是必须的。
#include <iostream>
using namespace std;
class Myclass
{
public:
int a;
const char c;
Myclass(int a, int c) :a(a), c(c)
{
}
};
int main(void)
{
int Myclass::*pa;
pa = &Myclass::a;
const char Myclass::*pc;
pc = &Myclass::c;
Myclass my(520, 'C'), *p = &my;
cout << my.*pa <&