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"。