C++成员选择符

通过上一节的学习我们看到:通过对象可以访问 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;这样的语句,编译都是无法通过的,其原因就是上一节所说的类的信息隐藏机制