在C++中,-> 操作符通常被称为箭头操作符(Arrow Operator)或成员访问运算符通过指针(Member Access Operator via Pointer)。这个名称来源于它的形状和功能,即通过指针访问对象的成员(包括成员变量和成员函数)。

常见称呼

  • 箭头操作符(Arrow Operator):这个名称非常直观,因为它的形状就像一个箭头。
  • 成员访问运算符通过指针(Member Access Operator via Pointer):这个名称更加正式,描述了它的功能,即通过指针来访问对象的成员。

在日常讨论中,开发者通常会使用“箭头操作符”这个简称,因为它简单明了,容易理解。

在C++中,箭头操作符 -> 是用于通过指针访问对象的成员(包括成员变量和成员函数)。与点操作符 . 不同,点操作符用于直接访问对象的成员,而箭头操作符 -> 则用于指向对象的指针。

使用场景和示例

  1. 访问对象的成员变量:如果你有一个指向对象的指针,你可以使用 -> 来访问该对象的成员变量。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class MyClass {
    public:
    int value;
    void display() {
    std::cout << "Value: " << value << std::endl;
    }
    };

    int main() {
    MyClass obj; // 创建对象
    obj.value = 10; // 使用点操作符访问成员变量

    MyClass* ptr = &obj; // 创建指向对象的指针
    ptr->value = 20; // 使用箭头操作符访问成员变量

    std::cout << "obj.value: " << obj.value << std::endl; // 输出:20
    return 0;
    }

    在这个例子中,ptr->value 等同于 (*ptr).value,但 -> 语法更加简洁和直观。

  2. 调用对象的成员函数:你也可以使用 -> 来通过指针调用对象的成员函数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class MyClass {
    public:
    int value;
    void display() {
    std::cout << "Value: " << value << std::endl;
    }
    };

    int main() {
    MyClass obj; // 创建对象
    obj.value = 10;

    MyClass* ptr = &obj; // 创建指向对象的指针
    ptr->display(); // 使用箭头操作符调用成员函数

    return 0;
    }

    在这个例子中,ptr->display() 等同于 (*ptr).display()。箭头操作符让代码更易于阅读和理解。

总结

  • -> 是一个箭头操作符,用于通过指针访问对象的成员。
  • 与点操作符 . 类似,但 -> 需要左操作数是一个指针,指向一个对象。
  • 它简化了指针操作,使代码更加直观和易于理解。