如:
double (CModalDlg::*p)(double);
可以这样声明吧?
之后怎样使用?
我试过:
double m;
m=(CModalDlg::*p)(5.0);这样是不行的。
double (CModalDlg::*p)(double);
可以这样声明吧?
之后怎样使用?
我试过:
double m;
m=(CModalDlg::*p)(5.0);这样是不行的。
解决方案 »
- 把不规则多边形分割成矩形的问题
- 请问如何修改CStatic类的文字属性
- 取得计算机时间的问题
- 在VC++中如何模拟键盘输入参数到一个DOS程序中,使得DOS程序可以自动运行计算,不必手工输入参数。
- 在View中,在用CDC画了几条线,想在单击鼠标时删除线,怎样做?
- 请问哪里有介绍:vc开发的UI准则的?
- 大侠快来帮忙(一个VC 中ADO调用Oracle存储过程时一个很奇妙的问题)
- 请问怎样可以disable窗口标题行被双击后resize的功能?
- GetSystemMetrics()得到的是什么
- 哈哈!!CSDN看来完啦。555,好伤心,人气明显下降,0:00之前根本登陆不上,大家散伙吧。这是遣散费------
- 非模态对话框的问题??
- 计时器结束后的代码执行
...
MYFUNC p=&CModalDlg::theRealFunc;
...
double m=(this->*p)(5.0);
double CModalDlg::fsin(double x)
{
return sin(x);
}
用函数指针使用它
double (CModalDlg::*p)(double);
p=fsin;
之后怎样调用?
是这样理解吗?
typedef double (CModalDlg::*MYFUNC)(double); //这里的::*怎样理解。
//定义一个MYFUNC的类型,该类型是一个指向CModalDlg类,带一个double形参,返回一个double类型
//的值,的函数指针的指针类型
...
MYFUNC p=&CModalDlg::theRealFunc; //定义一个指针指向所要指向的函数。但为什么还要&呢?
//函数名不是表示函数的首地址了吗?
...
double m=(this->*p)(5.0); //这里的->*有如何通过指针取成员指针呢?
//请指教一下?分数全是你的!
CModalDlg是类名,只有实例化才分配类中的函数才有地址,而对象也时有地址的,只有指明是哪个对象的才能唯一的指向该函数,&CModalDlg表示对象的地址。this就是表示当前对象的指针,它指向当前对象的地址。