怎样用指针调用C++类中的函数?

AthlonxpX862id 2003-10-03 06:03:42
C中的我会写,但C++中的不会写,请大伙帮忙
C中是这样写的
using namespace std;
void ExportedFunction()
{
cout<<"ExportedFunction() has be transfer"<<"\n";
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
typedef void (instruction)();
instruction * * lpFun=new instruction *[256];
lpFun[0]=&ExportedFunction;
(*lpFun[0])();

return 0;
}
上面C的形式我会写,但C++中类的函数我该怎样用指针调用啊?谢谢指教
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AthlonxpX86 2003-10-03
  • 打赏
  • 举报
回复
对了,还有个小问题,如果我在类中用指针调用自身类中的函数,下面的写法有没有什么问题!(编译运行通过,但不知道是不是隐藏着什么不安全的问题,除了那个内存释放的问题)
using namespace std;

#include <iostream>
using namespace std;
class Export{
public:
typedef void (Export::*instruction)();
void test()
{
instruction * lpFun=new instruction [256];
lpFun[0]=(this->ExportedFunction);
(this->*lpFun[0])();
//delete[] lpFun;
}
void ExportedFunction()
{
cout<<"ExportedFunction() has be transfer"<<"\n";
}
};
int main()
{
Export ex;
ex.test();
return 0;
}

AthlonxpX86 2003-10-03
  • 打赏
  • 举报
回复
谢谢,问题解决,结贴
  • 打赏
  • 举报
回复
呵呵,我也发现了:)
在.net下一切正常,俺也不知道是哪的问题,请高手指教!
AthlonxpX86 2003-10-03
  • 打赏
  • 举报
回复
谢谢楼上的朋友,我在VC中编译运行delete[] lpFun;居然发生了异常..........
  • 打赏
  • 举报
回复
你要的是这个?
#include <iostream>
using namespace std;
class Export{
public:

void ExportedFunction()
{
cout<<"ExportedFunction() has be transfer"<<"\n";
}
};
int main()
{
typedef void (Export::*instruction)();
instruction * lpFun=new instruction [256];
lpFun[0]=&Export::ExportedFunction;
Export ex;
(ex.*lpFun[0])();
delete[] lpFun;
return 0;
}

64,282

社区成员

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

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