急急急!!!c++数据成员的赋值问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 16:21:47
已知一个类A,x是类A的私有数据成员,s是类A的一个对象,s.x这样写对吗???类的私有数据成员不是只能通过成员函数来访问的吗????迷糊了,大侠赐教!!!!

s.x这样写语法上是对的。至于它是不是错的,那要看它出现在什么地方了。

如果它出现在外程序中,那显然这样是访问不到变量的。1)如果它出现在类A的友元类内部或者2)类A的内部,那就是对的了。

类的私有成员确实只能通过成员函数来访问,上面的2情况就是这样的。1情况就是为了避免其他类访问不了该变量而设定的,它的利弊应该权衡。

是这样的,如果s是类A的对象就可以写成s.x

可以这样字写,私有成员只能用A生成的对象来访问。

s.x语法没错,但是编译不通过,私有数据成员在外部确定只能通过成员函数访问。
公有数据成员才能用s.x。当然还有其它情况,比如保护数据成员可以在子类中用这种方法访问。

私有数据成员是通过成员函数访问确实没有问题,但是并没有说就不能这样(s.x)写了?!它是通过对象调用私有成员,私有成员的“私有”是面对类外函数而言,只要这样写的时候保证是在类内部写也是正确的。