参考:http://www.weixueyuan.net/view/6336.html
总结:
访问可以通过成员选择符“.”或指针操作符“->”来完成。
通过上一节的学习我们看到:通过对象可以访问public属性的成员变量或成员函数。访问可以通过成员选择符“.”或指针操作符“->”来完成。
[例1] 访问类的成员变量和成员函数:
#include<iostream> using namespace std; class book { public: void setprice(double a); double getprice(); private: double price; }; void book::setprice(double a) { price = a; } double book::getprice() { return price; } int main() { book Alice; Alice.setprice(29.9); cout<<"The price of Alice is $"<<Alice.getprice()<<endl; book *Harry = new book; Harry->setprice(49.9); cout<<"The price of Harry is $"<<Harry->getprice()<<endl; return 0; }
本例继续沿用上节中的book类的定义,在主函数中定义了该类的一个对象Alice,该对象通过成员选择符调用类中的setprice和getprice函数。之后又定义了一个对象指针Harry,并且进行初始化,既然是指针,当然得采用指针操作符进行函数调用了,如例中所示,Harry指针同样访问了setprice和getprice两个函数。
需要注意的是无论是成员选择符“.”还是指针操作符“->”,在类外都只能访问类中定义的public属性的成员变量或成员函数。例如在例1中,我们写出Alice.price = 29.9或者Harry->price = 49.9这样的语句,编译都是无法通过的,其原因就是上一节所说的类的信息隐藏机制。