这二个的区别其实很简单,首先,这二个操作符都是为了获取类类型对象的成员,但是,有区别,点操作符的左操作数是对象,而箭头操作符是指针。
看下面的一个例子:
Sales_item是一个类名,same_isbn()是这个类的成员函数;
Sales_item item();
Sales_item *sp=&item;
(*sp).same_isbn();
如果你在写的时候漏掉了这个指针周围的圆括号的话,意义就变得不一样了,*sp.same_isbn();因为在这儿"."的优先级高于“*”,这时,就通不过编译,因为,sp指针根本就没有成员函数。正是因为这个原因,因为我们在编程时可能很容易忘记圆括号,所以,就用箭头来代替这个,(*sp).same_isbn()就等价于sp->same_isbn();
还有注意的一点就是点操作符仅应用于类类型对象。