.和->的区别

5 阅读1分钟

对象.属性
指针->属性 =》 (*指针).属性
由上可见 ->可以理解为 解引用(*指针) cpp

struct Demo {
    int v;
    void show() { std::cout << "v=" << v << "\n"; }
};

Demo d{10};       // 栈上的对象
Demo* p = &d;     // 指向对象的指针

d.v;      // 使用 . 访问对象成员
d.show(); // 使用 . 调用对象方法

p->v;     // 使用 -> 访问指针指向对象的成员
p->show();// 使用 -> 调用指针指向对象的方法

(*p).v;   // 等价写法:先解引用,再用 . 访问成员