点运算符(.)
点运算符只能用于类类型的对象。其左侧运算对象必须是一个类类型的对象,右侧运算对象为运算对象指定的成员。
比如现在已经有了
Class A{
public:
int val;
int f();
}
则在使用的点运算符的时候:
A a;
a.f();//
箭头运算符(->)
箭头运算符与点运算符有关,对于一个指针ptr,表达式ptr->mem等价于(*ptr).mem;
string s1 = "a string",*p = &s1;
auto n = s1.size();//运行string对象s1的size()成员
n = (*p).size();//运行p所指对象的size成员
n = p->size(;)//等价于(*p).size
总结
点运算符针对对象和对象的成员,箭头运算符针对的是指针和成员;