如何定义类的函数指针成员啊

hithink 2015-08-03 03:38:31
类的函数指针成员是一个方法成员,vc提示未定义,但我把它作为类成员变量来使用,我意识到这是错的,但是我需要这个指针成员,因为我要给他赋函数,怎么办啊
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
707wk 2015-08-03
  • 打赏
  • 举报
回复
不能用函数重载和函数模板解决吗
fly_dragon_fly 2015-08-03
  • 打赏
  • 举报
回复
直接用function吧,
class A{
    function<int (int)> m_call;
public:
    A(decltype(m_call) pf) : m_call(pf) {m_call(2);}
};
int tt(int){}
struct B{
    int tt(int){}
};
B b;
A a(&tt),c(bind(&B::tt,&b,_1));
yusss 2015-08-03
  • 打赏
  • 举报
回复

class X
{
public:
   void f();
};
 
void (X::*pf)() = &X::f;
嘿嘿,写错了,纠正一下
Saleayas 2015-08-03
  • 打赏
  • 举报
回复
class CA
{
public:
	CA(int (CA::*pfn)(int) = &CA::F)
		: _pfnF(pfn)
	{

	}
	int F(int a)
	{
		return a + 1;
	}

	int F2(int a)
	{
		return a + 2;
	}

	void Dispaly(int a)
	{
		TR(L"%d", (this->*_pfnF)(a));
	}

	int (CA::*_pfnF)(int);
};


int main()
{
	CA ca;

	ca.Dispaly(100);

	CA cb(&CA::F2);
	cb.Dispaly(100);

	return 0;
}
hithink 2015-08-03
  • 打赏
  • 举报
回复
引用 2 楼 yusss 的回复:

class X
{
public:
   void f();
};

void (X::pf*)() = &X::f;
静态成员变量吗?
yusss 2015-08-03
  • 打赏
  • 举报
回复

class X
{
public:
   void f();
};

void (X::pf*)() = &X::f;
赵4老师 2015-08-03
  • 打赏
  • 举报
回复
《深度探索C++对象模型》 《C++反汇编与逆向分析技术揭秘》

64,637

社区成员

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

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