->箭头操作符
class Entity
{
public:
void print() const{std::cout << "hello" << std::endl;}
};
int main()
{
Entity e;
e.print();//这样调用没问题,因为e是一个Entity类型的对象
Entity* e1;
e1.print();//这样的调用方式是错误的,因为e1只是一个指针,只是一个数值,
//而不是Entity类型的对象,它只是这个对象的地址
(*e1).print();//这样的调用才可以,因为解引用之后取到了Entity对象的地址
*e1.print();//这样不行,因为*解引用运算符的优先级很低,
//这样的话会被解读成先.print()在解引用
e1->print();//这种方式更简洁
//在visual studio里面如果这里输入e1.print(),会自动变成->
//不仅成员函数,只要是用指针类型表示的类的实例的成员,都可以这样访问
}
上海得物信息集团有限公司公司福利 1166人发布


