在C++中,-> 和 . 是两个不同的成员访问操作符,用于访问类、结构体或联合体的成员。
“->” 操作符:
- 用于通过指针访问指针所指向对象的成员。
- 当有一个指向对象的指针时,可以使用 -> 操作符来访问该指针所指向对象的成员。
- 语法:指针->成员名
- 示例:
Person* ptr = new Person();
ptr->name = "Alice";
ptr->age = 25;
“.” 操作符:
- 用于直接访问对象实例的成员。
- 当你有一个对象的实例时,可以使用 . 操作符来直接访问该实例的成员。
- 语法:实例.成员名
- 示例:
Person person;
person.name = "Alice";
person.age = 25;
一个简单的代码案例来说明 -> 和 . 的使用和区别:
#include <iostream>
using namespace std;
class Person {
public:
string name;
int age;
};
int main() {
Person person1; // 创建一个 Person 类的对象 person1
person1.name = "Alice"; // 直接访问对象实例的成员(使用 . 操作符)
person1.age = 25;
Person* person2 = new Person(); // 创建一个 Person 类的对象person2,并用指针 person2 指向它
person2->name = "Bob"; // 通过指针访问对象的成员(使用 -> 操作符)
person2->age = 30;
cout << "Person 1: " << person1.name << ", " << person1.age << endl;
cout << "Person 2: " << person2->name << ", " << person2->age << endl;
delete person2; // 释放通过 new 运算符分配的内存
return 0;
}
- 在上述示例中,我定义了一个 Person 类,其中包含两个成员变量 name 和 age。
- 在 main 函数中,创建了两个 Person 对象:person1 是一个对象实例,通过 . 操作符直接访问它的成员变量;person2 是一个指向 Person 对象的指针,通过 -> 操作符访问它所指向对象的成员变量。
- 输出结果为:
Person 1: Alice, 25
Person 2: Bob, 30
1264



被折叠的 条评论
为什么被折叠?



