如何定义⼀个类成员的指针(成员变量或成员函数)⾸先看我从⽹上引⽤的东西:
“指向数据成员的指针格式如下:
<;类型说明符><;类名>::*<;指针名>
指向成员函数的指针格式如下:
<;类型说明符>(<;类名>::*<;指针名>)(<;参数表>)
例如,设有如下⼀个类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;
/
(在书上看到这些类似的东西,⽐较纳闷,于是就在⽹上到了那篇东西~以下是我⾃⼰写的程序,在VC6下通过得了编译,但是在DEV-Cpp下⼜不⾏~~⾮常郁闷~)#include <iostream>
using namespace std;
class A
{
public:
virtual void f()
{
cout << "A::f was called" << endl;
}
};
class B:public A
{
public:
virtual void f()
{
cout << "B::f was called" << endl;
}
};
int main()
{
B b;
void (A::*pf)()=A::f;
(b.*pf)();
<();
return 0;
}
有了指针,还必须通过⼀个具体的类来引⽤!因为引⽤的不是⼀个具体的对象.所以pf并没有⼀个确切的地址.⽽是⼀个对象内相对的⼀个地址.在成员函数前⾯都加上staic,那就可以作为普通函数指针来处理

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。