-
使用箭头操作符 (
->
):ptr->function()
是最常用和推荐的方式,因为它更简洁、更直观。箭头操作符 (->
) 被设计为与点操作符 (.
) 配合指针一起使用,以便通过指针访问对象的成员。 -
先解引用指针,然后使用点操作符 (
.
):(*ptr).function()
首先使用*ptr
来解引用指针,得到它所指向的对象,然后使用点操作符 (.
) 来调用该对象的成员函数。这种方式虽然有效,但在实践中不如使用箭头操作符那么常见或推荐。
两种方式在逻辑上是等价的,它们都会调用由 ptr
指向的对象的 function
成员函数。然而,使用箭头操作符 (->
) 更为简洁,并且更符合 C++ 的惯用风格。
这里是一个简单的示例,演示了这两种方式的等价性:
#include <iostream> class MyClass {
public: void myFunction() { std::cout << "Function called" << std::endl; }
}; int main() { MyClass obj; MyClass* ptr = &obj; // 使用箭头操作符调用函数 ptr->myFunction(); // 先解引用指针,然后使用点操作符调用函数 (*ptr).myFunction(); return 0;
}
在这个例子中,两种调用方式都会输出 "Function called",表明它们在功能上是等价的。然而,为了代码的清晰和一致性,建议使用箭头操作符 (->
) 来通过指针调用成员函数。