C++成员函数指针
答案:2 悬赏:10 手机版
解决时间 2021-11-24 02:33
- 提问者网友:酱爆肉
- 2021-11-23 09:48
C++成员函数指针
最佳答案
- 五星知识达人网友:鱼忧
- 2021-11-23 11:16
error C2297: “->*”: 非法,右操作数包含“CtextdlgView::pDraw”类型
很明显你应该定义
class CtextdlgView;
typedef int (CtextdlgView::*pDraw)(CPoint,CPoint);
因为上面说明它不认识CtextdlgView::pDraw类型。
应该要换一个名字,不知道会不会和原来的函数冲突追问typedef int (CtextdlgView::*pDraw)(CPoint,CPoint);
Draw(&CtextdlgView::DrawEllipse,ptOri,point);
1>d:\vs2008study\textdlg\textdlg\textdlgview.cpp(114) : error C2664: “CtextdlgView::Draw”: 不能将参数 1 从“int (__thiscall CtextdlgView::* )(CPoint,CPoint)”转换为“CtextdlgView::pDraw *”追答看这个ca.Result(CA::Min, a, b)明显没&
Draw(&CtextdlgView::DrawEllipse,ptOri,point);
}
不用&
Draw(CtextdlgView::DrawEllipse,ptOri,point);
}
原来的不用改,不要用this->
如果不行,吧原代码发给我,我试试
很明显你应该定义
class CtextdlgView;
typedef int (CtextdlgView::*pDraw)(CPoint,CPoint);
因为上面说明它不认识CtextdlgView::pDraw类型。
应该要换一个名字,不知道会不会和原来的函数冲突追问typedef int (CtextdlgView::*pDraw)(CPoint,CPoint);
Draw(&CtextdlgView::DrawEllipse,ptOri,point);
1>d:\vs2008study\textdlg\textdlg\textdlgview.cpp(114) : error C2664: “CtextdlgView::Draw”: 不能将参数 1 从“int (__thiscall CtextdlgView::* )(CPoint,CPoint)”转换为“CtextdlgView::pDraw *”追答看这个ca.Result(CA::Min, a, b)明显没&
Draw(&CtextdlgView::DrawEllipse,ptOri,point);
}
不用&
Draw(CtextdlgView::DrawEllipse,ptOri,point);
}
原来的不用改,不要用this->
如果不行,吧原代码发给我,我试试
全部回答
- 1楼网友:長槍戰八方
- 2021-11-23 12:29
成员函数的指针不是这样子用的哦。它必须配合this指针才可以。
如果你只是想OnLButtonUp根据条件分发,倒不如另外加一个参数,搞成员函数指针是非常不好的Design。
如果你只是想OnLButtonUp根据条件分发,倒不如另外加一个参数,搞成员函数指针是非常不好的Design。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯