| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1250 人关注过本帖
标题:对象参数与私有变量
取消只看楼主 加入收藏
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
对象参数与私有变量
请看:
class A
{
public:
    int f(A &a);
private:
    int x;
};
int A::f(A &a)
{
    a.x = 0;
    return 0;
}

意味着参数a的私有变量x可以被其他对象直接修改,怎么还能叫私有 ?
搜索更多相关主题的帖子: 对象 参数 变量 
2010-03-29 20:49
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:0 
呃。。。明白了

沉醉东风月下读。柴门闭,莫管客来无。
2010-03-29 23:22
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:0 
回复 4楼 debroa723
我明白了,这也是OO封装的原因之一吧。。。
谢谢

沉醉东风月下读。柴门闭,莫管客来无。
2010-03-30 12:11
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:0 
由类A的结构,在对象a的存储空间中变量x偏移量为0,所以把a的地址强转为指针后,就指向a的x,从而对该指针
指向空间的赋值,就相当于对x的赋值

沉醉东风月下读。柴门闭,莫管客来无。
2010-03-30 22:27
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:0 
按照声明顺序计算偏移量。
比如类中定义int x; int y; 那么x的偏移量是0,而y的偏移量就是4,
对y的赋值就应该是 *((int*)(&a) + 1) = 100;

沉醉东风月下读。柴门闭,莫管客来无。
2010-03-31 12:39
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:0 
偏移量是由声明顺序决定的,跟访问权限无关。

沉醉东风月下读。柴门闭,莫管客来无。
2010-03-31 12:45
快速回复:对象参数与私有变量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026489 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved