void (*p)(void) = funtion1;在类里报错

wwyyxx26 2010-07-13 09:43:40
.h里

class Ckaihuang
{

public:
void funtion1(void);
void funtion2(int i);
void funtion3(void);
};



.cpp里

#include "File1.h"

void Ckaihuang::funtion1(void)
{
int i=0;
i=i;
}
void Ckaihuang::funtion2(int i)
{
i=0;
}
void Ckaihuang::funtion3(void)
{
void (*p)(void) = funtion1;//报错Member function must be called or its address taken
p();
}


改怎么改呢?
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2010-07-13
  • 打赏
  • 举报
回复
楼主请找本C++教材补课“指向成员的指针”
oyster2008 2010-07-13
  • 打赏
  • 举报
回复
up
[Quote=引用 6 楼 lianshaohua 的回复:]

引用 4 楼 liao05050075 的回复:
C/C++ code

void Ckaihuang::funtion3(void)
{
void (Ckaihuang::*p)(void) = funtion1;
(this->*p)();
}

改为:
void Ckaihuang::funtion3(void)
{
void (Ckaihuang::*p)……
[/Quote]
ztenv 版主 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liao05050075 的回复:]
C/C++ code

void Ckaihuang::funtion3(void)
{
void (Ckaihuang::*p)(void) = funtion1;
(this->*p)();
}
[/Quote]
改为:
void Ckaihuang::funtion3(void)
{
void (Ckaihuang::*p)(void) =&(Ckaihuang::funtion1);
(this->*p)();
}
wwyyxx26 2010-07-13
  • 打赏
  • 举报
回复
试了,c++builder的环境,都不行勒
liao05050075 2010-07-13
  • 打赏
  • 举报
回复

void Ckaihuang::funtion3(void)
{
void (Ckaihuang::*p)(void) = funtion1;
(this->*p)();
}

bitxinhai 2010-07-13
  • 打赏
  • 举报
回复
void (*p)(void) = Ckaihuang::funtion1;

试试
phpjspasp 2010-07-13
  • 打赏
  • 举报
回复
void (Ckaihuang::*p)(void) = funtion1;

调用的时候,也不能用 p()

function1可是有一个参数的,是this
healer_kx 2010-07-13
  • 打赏
  • 举报
回复
类型都不匹配。。。
yuhuaijun 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 taodm 的回复:]

楼主请找本C++教材补课“指向成员的指针”
[/Quote]
C++Primer 18.3节, LZ可以去看看就明白为什么了

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧