-
使用箭头操作符 (
->
):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",表明它们在功能上是等价的。然而,为了代码的清晰和一致性,建议使用箭头操作符 (->
) 来通过指针调用成员函数。