在C++中对象可以通过“.”来调用该对象的成员变量。p.func()
int member;
如果是指针的话,就不能通过“.”来调用,而只能使用“->”来调用。p->func()
这种情况的出现是因为使用了结构,对一个结构来说,
struct MyStruct
{
};
如果定义变量
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(),左边是结构变量。