首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于私成事员的访问,求解惑

2013-08-10 
关于私有成员的访问,求解惑。假设我声明了一个类A,在其中声明了一个公有的方法pm(A & Ainstance)和一个私有

关于私有成员的访问,求解惑。
    假设我声明了一个类A,在其中声明了一个公有的方法pm(A & Ainstance)和一个私有数据int privatedata,那么我在pm方法的实现中能否出现这样的代码:Ainstance.privatedata(这就是用A的一个实例直接访问该实例的私有成员了)?
    如果可以是否是因为这是在类内的原因,是否可以这样理解只要是在类内,任何对象都可以直接访问其私有成员? 类 对象 私有数据访问
[解决办法]
学C++都会遇到这个问题.

作用域是类的, 不是对象的. 

意思就是同一个类的各个对象之间, 是可以从A对象访问B对象里的私有成员的。
[解决办法]
类的作用域,或者说类的范围,或者说类的内部,很抽象的一个东西。
简单理解的话,class A 下面的花括号开始,到结束的花括号位置。这中间就是类的作用域,类的范围,或者类的内部。
这些概念,有的时候说起来是很难说清楚。不是一个具体的东西,而是抽象的数据类型。

举个不很恰当的例子:
类看作一个电视机厂,类的成员变量是各种零件,成员函数就是车间内的工人或者工程师。而电视机就是类实例化的产品(对象a,b,c等)。
类不是电视机(对象),类的实例化是对象(工厂生产电视机)
在类的范围内(工厂内部),工人(成员函数)可以对任意一台电视机(a,b,c)的零件进行拆装、组合(随意访问私有成员变量)。
而在类的外面,用户使用电视机只能通过电视开关或者遥控器(公有成员函数)打开、关闭电视,换频道,调节音量等(各个公有函数完成的功能),里面的零件是看不到也不能操作的。

热点排行