c++中操作符->与 . 的使用与区别
在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 类的对象 person1person1.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