在C++中,使用 -> 和 . 运算符是访问类的成员的两种不同方式,取决于成员的类型。下面是它们的区别和使用情况:
-
-> 运算符:
- -> 运算符用于访问指向对象的成员指针。
- 当你有一个指向类或结构体实例的指针时,你可以使用 -> 运算符来访问该实例的成员。
- 通常,当你有一个指向对象的指针时,你使用 -> 运算符来访问对象的成员。
MyClass* ptr = new MyClass();
ptr->memberFunction(); // 使用 -> 调用对象的成员函数
int value = ptr->memberVariable; // 使用 -> 访问对象的成员变量
-
. 运算符:
- . 运算符用于直接访问类或结构体实例的成员。
- 当你有一个对象的实例时,你使用 . 运算符来访问该对象的成员。
- 通常,当你有一个对象而不是指针时,你使用 . 运算符来访问对象的成员。
MyClass obj;
obj.memberFunction(); // 使用 . 调用对象的成员函数
int value = obj.memberVariable; // 使用 . 访问对象的成员变量
何时使用哪个运算符?
- 如果你有一个指向对象的指针,你应该使用 -> 运算符来访问对象的成员。
- 如果你有对象本身而不是指针,你应该使用 . 运算符来访问对象的成员。
这两种运算符的选择取决于你操作的是指针还是对象本身。