关于C++成员函数指针的使用

在做项目的时候,遇到了在类中根据不同的调用函数,在被调用函数的某处需要做不同的处理,本来就想着直接在类中设个标记变量判断下就好了,不过觉得这样代码可能看起来会有些凌乱,而且效率估计有些低,于是想起来使用函数指针。去网上查了查函数指针的使用,可能由于都没提成员函数指针到底为什么特殊及如何使用,只给了些例程,因此怎么调用都是不对。

为此我去查了下英文的资料,主要有MSDN关于pointer-to-member operator的解释:

http://msdn.microsoft.com/en-us/library/k8336763.aspxhttp://msdn.microsoft.com/en-us/library/k8336763.aspx

和codeguru的教程:

http://www.codeguru.com/cpp/cpp/article.php/c17401/C-Tutorial-PointertoMember-Function.htm

原来,类成员指针是一种特殊的指针,它保存的是指针所指向的成员变量或成员函数在类的对象中的相对位置,为此,在引用的时候必须使用“类成员指针操作符”(pointer-to-member operator)也就是 .* 和 ->*,并指定它所属的类对象。原来对于类成员函数指针的引用有专门的操作符,这下子这个问题就解决了。

另外一些更深入介绍类成员指针的文章有:

http://blog.mega-zone.org/?p=122

http://www.codeproject.com/Articles/7150/Member-Function-Pointers-and-the-Fastest-Possible

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值