c++中 . 和 -> 的区别是什么

c++中 . 和 -> 的区别是什么

一、总结

一句话总结:

->主要用于类类型的指针访知问类的成员,.(点)运算符主要用于类类型的对象访问类的成员,或者结构体访问成员。
class A
{public :int a}
A ma;
A *p=&ma;
那么指针p应使用->来访版问成员a,比如p->a,而ma应使用.来访问,比如ma.a区别就在这里,凡是指针就权使用->,对象就使用.运算符。

二、c++中 . 和 -> 的区别是什么

转自或参考:c++中 . 和 -> 的区别是什么?_百度知道
https://zhidao.baidu.com/question/143290358.html

1、回答一

->主要用于类类型的指针访知问类的成员,.(点)运算符主要用于类类型的对象访问类的成员,或者结构体访问成员。
举例
class A
{public :int a}
A ma;
A *p=&ma;
那么指针p应使用->来访版问成员a,比如p->a,而ma应使用.来访问,比如ma.a区别就在这里,凡是指针就权使用->,对象就使用.运算符。

 

2、回答2

c++中 . 和 -> 主要是用法上的不同。

1、A.B则A为对象或者结构体;

2、A->B则A为指针,->是成员百提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;

例如:

class student

{

public:       

string name[20];

}

第一种情况,采用指针访问 student *xy,则访问时需要写成 *xy.name="hhhhh";等价于xy->name="hhhhh"。

第二种情况,采用普通成员访问 student xy,则访问时需要写成 xy.name="hhhhh"。

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/12961980.html