64,746
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
int __cdecl implement(int x);
void myDoc::Color2Value()
{
int (myDoc::*p) (int);
p = implement;
theObj.add(p);
}
在类里面可以这样!
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <stdio.h>
using namespace std;
class myObj{
public:
myObj (int x=10) {m=x;}
void add(int (*_implement)(int )){cout <<_implement(m) <<endl;}
int m;
};
class myDoc{
public:
myObj theObj;
void Color2Value();
static int implement(int x); //改成静态成员函数
};
int myDoc::implement(int x){return ++x;}
void myDoc::Color2Value() { theObj.add(&myDoc::implement);}
int main()
{
myDoc Doc;
cout <<Doc.theObj.m <<endl;
return 0;
}