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

小弟我终于知道小弟我想问什么了,再发一帖

2012-04-20 
我终于知道我想问什么了,再发一帖求助大家好,我的原帖http://topic.csdn.net/u/20120322/15/5f2e3383-cc76

我终于知道我想问什么了,再发一帖求助
大家好,我的原帖http://topic.csdn.net/u/20120322/15/5f2e3383-cc76-418a-a83a-7c9910071e8c.html十分感谢大家的讨论。可是那个帖子里面我表述不清,有些人误会了我的意思。我现在终于组织好了语言,应该能把问题说清楚了,再加上原帖分数太少,特再发一帖。

一个类的私有成员,是否应该可以被同类对象改变?比如类
class A
{
  private: int priValue;
  public:
  void doSomething(A &asAnotherobj)
  {
  this.priValue = 1;//这里,一个A的对象改变了自己的priValue,完全没有问题。
  asAnotherobj.priValue = 2;//这里,一个A的对象,通过自己的行为改变了和自己同类的另外一个对象的private访问级别的priValue,这样做是否合理?
  }
}

我知道在实际编程中,这样做是有道理的,比如拷贝构造,还有编译器的限制等。我想讨论的是,在面向对象理论上来看,是否应该允许这样的做法?(即不考虑现实,单纯的理论分析,谢谢。)

[解决办法]
类是个概念,类的实例化叫对象

假如类叫人,人是抽象概念,那张三,李四,王五就都是对象了,他们是实际存在的

假如存款是每个人的属性,你觉得 张三要是随随便便就能更改王五的存款数额,王五能干吗?
[解决办法]
所谓访问权限(如public,private),是对“类”来说的,不是对“对象”来说的,private访问权限是其它类不能访问,而非这个类的不同对象不能访问。 通过函数访问就保证了足够的安全性···
不过从面向对象的观点来看有点矛盾。各个对象应该都是一个独立的实体,按理说不应该通过一个对象去改变另一个对象的内容。估计这就是const&形参的目的了。仅代表自己的看法···希望大牛们能够给出NB的解释···
[解决办法]

探讨
大家好,我的原帖http://topic.csdn.net/u/20120322/15/5f2e3383-cc76-418a-a83a-7c9910071e8c.html十分感谢大家的讨论。可是那个帖子里面我表述不清,有些人误会了我的意思。我现在终于组织好了语言,应该能把问题说清楚了,再加上原帖分数太少,特再发一帖。

一个类的私有成员,是否应该可以被同类对象改变?比如类
class A
……

[解决办法]
探讨
引用:

如果你能把类和类的对象分开的话 也许会容易想通点。然后再读下:访问控制是针对类,而非对象的。这句话。再从封装性这点考虑,类的封装性是希望类本身与外界的联系越少越好,降低与外界的耦合度,而提供一个成员接口来给外界使用。但是你不能说将成员接口也划分到外界那部分。

我自然理解类和对象的区别。现在的设计是,private是作用于类上的,如果把pri……

[解决办法]
探讨
这个是可以的,在类的成员函数里面可以访问里的任意成员,不过你这个参数是外部的了,这个就有点纠结了!求答案!

热点排行