->箭头操作符

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(),会自动变成->
    //不仅成员函数,只要是用指针类型表示的类的实例的成员,都可以这样访问
}
全部评论

相关推荐

点赞 评论 收藏
分享
10-13 16:58
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务