C++指向成员的指针用法详解

指针的进阶用法里,指向成员的指针算是个比较容易被绕晕的点。它既能指向成员变量,也能指向成员函数,灵活但也容易出错。尤其是在做一些回调或者构建对象表的时候,掌握这块挺有的。

C++的成员指针其实分两类:一种是指向成员变量的,像int MyClass::*ptr;另一种是指向成员函数的,比如void (MyClass::*funcPtr)()。用法上有点像普通函数指针,但得通过对象来调用,不然就会编译不过。

蛮常见的场景是做策略模式,或者搞点表驱动写法,把函数指针放表里按需调用。虽然看起来“硬核”,但一旦搞清楚了,其实还挺顺手的。

如果你还不太熟,推荐你去看看这篇C++类成员函数指针深度解析,讲得还挺透的。还有这几篇也可以一起看:

如果你经常写一些需要灵活派发行为的代码,比如事件系统、状态机啥的,可以多用用成员函数指针这招,效率高,还蛮优雅的。

ppt 文件大小:17.46MB