荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: playboy (我要成为SAM), 信区: Program
标  题: C++函数的调用
发信站: BBS 荔园晨风站 (Sun Jan 16 11:42:00 2000), 转信

发信人: frank(Frank), 信区: Programming
标 题: C++函数调用方法
发信站: BBS 水木清华站 (Fri Oct 16 18:26:43 1998)

C++的类里面可以这样用函数指针在一个成员函数调用另一个成员:

class A
{
public:
     int num;
     double f1(int n);
     void run();
};

typedef double (A::*pFunc)(int);

double A::f1(int n)
{
     return (double)(num + n);
}

void A::run()
{
     int n = 10;
     pFunc pf = f1;
     double x = (this->*pf)(n);
     ...
}

这样就不用把f1和num声明成静态成员了. 要注意的是, 函数指针定义的时候
要加上类的作用符::, 使用的时候要加上this指针, 因为类的成员都有隐含
this指针.

这种方法一般书里都没讲, 是我试出来的, 不知是不是很正规.

--
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.90]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店