C++点和箭头操作符的区别

在C++中对象可以通过“.”来调用该对象的成员变量。p.func()
如果是指针的话,就不能通过“.”来调用,而只能使用“->”来调用。p->func()

这种情况的出现是因为使用了结构,对一个结构来说,

struct MyStruct
{
      int member;
};

如果定义变量 MyStruct s,那么使用其中的成员元素时可以用 s.member = 1;

如果采用指针方法访问, MyStruct *ps,那么同样的访问必须使用, (*ps).member = 1; 或者  ps->member = 1

另一例:
struct CandyBar {
float weight;
int calorie;
};

在程序中
CandyBar snack = {2.3, 350};
我们可以用snack.weight来取结构中的值。
如下情况可以使用“->”
CandyBar *bird;
bird->weight = 2.23;



C++中定义类对象是指针对象的时候,需要用到"->"指向类中的成员;当定义一般对象的时候,需要用到"."指向类中的成员。

class A {
public:
play();
}

如果定义如下:

A *pa则:p->play(),左边是结构指针。
A a则:p.play(),左边是结构变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值