文件名称:C++对象和指针的引用
文件大小:5KB
文件格式:TXT
更新时间:2015-05-17 17:21:16
指向类的成员的指针指向类的成员的指针指向类的成员的指针
指向类的成员的指针
在C++中,可以说明指向类的数据成员和成员函数的指针。
指向数据成员的指针格式如下:
<类型说明符><类名>::*<指针名>
指向成员函数的指针格式如下:
<类型说明符>(<类名>::*<指针名>)(<参数表>)
例如,设有如下一个类A:
class A
{
public:
int fun (int b) { return a*c+b; }
A(int i) { a=i; }
int c;
private:
int a;
};
定义一个指向类A的数据成员c的指针pc,其格式如下:
int A:: *pc = &A::c;
再定义一个指向类A的成员函数fun的指针pfun,其格式如下:
int (A:: *pfun)(int) = A::fun;
由于类不是运行时存在的对象。因此,在使用这类指针时,需要首先指定A类的一个对象,然后,通过对象来引用指针所指向的成员。例如,给pc指针所指向的数据成员c赋值8,可以表示如下:
A a;
a.*pc = 8;
其中,运算符.*是用来对指向类成员的指针来操作该类的对象的。
如果使用指向对象的指针来对指向类成员的指针进行操作时,使用运算符->*。例如:
A *p = &a; //a是类A的一个对象,p是指向对象a的指针。
p ->* pc = 8;
让我们再看看指向一般函数的指针的定义格式:
<类型说明符>*<指向函数指针名>(<参数表>)
关于给指向函数的指针赋值的格式如下:
<指向函数的指针名>=<函数名>
关于在程序中,使用指向函数的指针调用函数的格式如下:
(*<指向函数的指针名>)(<实参表>)
如果是指向类的成员函数的指针还应加上相应的对象名和对象成员运算符。
下面给出一个使用指向类成员指针的例子:
#include