*` 和 `.*` 成员指针运算符? " />
尽管已经探索了现有资源,您可能仍然发现自己对以下内容感到困惑C 中神秘的 -> 和 . 运算符本文旨在阐明它们的真实含义。
理解指针成员运算符的目的
-> 和 . 都是便于间接访问成员函数的指针成员运算符本质上意味着它们使您能够通过指针而不是调用成员函数。
语法和用法
何时使用 -> 与 .
示例
考虑 X 类具有以下成员函数:f() 和 g()。假设您有一个指向 f() 函数的指针:
struct X { void f() {} void g() {} }; typedef void (X::*pointer)(); pointer somePointer = &X::f;
要使用对象 x 调用 somePointer,您可以使用:
X x; (x.*somePointer)(); // Calls x.f()
如果 x 不是对象但是指向对象的指针,您可以使用 ->* 调用成员函数,如下所示:
X* px = new X; (px->*somePointer)(); // Calls px->f()
这个示例说明了使用-> 或 . 在通过指针间接访问成员函数时至关重要,尤其是在处理指向的对象时。
以上是C 的 `->*` 和 `.*` 成员指针运算符有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!