對象指針的相關套用
如果是指向類的成員函式的指針還應加上相應的對象名和對象成員運算符。
下面給出一個使用指向類成員指針的例子:
#include
class A
{
public:
A(int i) { a=i; }
int fun(int b) { return a*c+b; }
int c;
private:
int a;
};
void main()
{
A x(8); //定義類A的一個對象x
int A::*pc; //定義一個指向類數據成員的指針pc
pc=&A::c; //給指針pc賦值
x.*pc=3; //用指針方式給類成員c賦值為3
int (A::*pfun)(int); //定義一個指向類成員函式的指針pfun
pfun=&A::fun; //給指針pfun賦值
A *p=&x; //定義一個對象指針p,並賦初值為x
cout<<(p->*pfun)(5)<
}
以上程式定義了好幾個指針,雖然它們都是指針,但是所指向的對象是不同的。p是指向類的對象;pc是指向類的數據成員;pfun是指向類的成員函式。因此它們的值也是不相同的。