在C++中类的私有成员,在超出类的作用域时,是不能被访问的,但是可以用引用的方式来得到私有成员的数据
如下例:
#include<iostream>
using namespace std;
class people
{
public:
people() :x(5){}
void print();
int &back();
private:
int x;
};
int &people::back()
{
return x;
}
void people::print()
{
cout << x << endl;
}
int main()
{
people p;
/*经过下面的语句,y是类中私有成员x的别名*/
int &y = p.back();
y = 25;
p.print();
return 0;
}
运行结果:
但是这种方式去得到类的私有成员很容易因为乱修改私有成员而导致无法察觉的错误,所以可以用下面的方式来定义函数(用const使程序无法改变私有成员,只能读取)
class people
{
public:
people() :x(5){}
void print();
/*修改的部分*/
const int &back();
private:
int x;
};
加了const之后,之前写的那段程序将会表示编译错误,说明此时的私有成员是不能被修改的