免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 9010 | 回复: 24

【C++】C++私有成员访问权限的一个疑问 [复制链接]

论坛徽章:
0
发表于 2010-07-26 19:00 |显示全部楼层
书上说一个类的私有成员只能自己的成员函数或者友元函数才有访问权限,但是请看下面的一个简单程序:
#include <iostream>
using namespace std;
class A
{
public:
        A();
        void foo(A & a);
        void print();
private:
        int x;
};

A::A()
{
        x = 1;
}

void A::foo(A & a)
{
        a.x = 2;
}
void A::print()
{
        cout << "x = " << x << endl;
}



int main(int argc, char ** argv)
{
        A test1, test2;

        test1.foo(test2);
        test2.print();

}


foo函数中为什么能访问到其他同类对象的私有成员呢?我认为即使是同类的两个对象,应该不能彼此的私有成员,就好象每一个个体人,都属于人类,但不能获取其他人的隐私一样啊?
correct me if am wrong!

论坛徽章:
1
午马
日期:2013-08-23 23:39:47
发表于 2010-07-26 19:09 |显示全部楼层
没看代码,
一个的私有成员只能自己的成员函数或者友元函数才有访问权限

论坛徽章:
0
发表于 2010-07-27 08:15 |显示全部楼层
回复 2# phy0077


    那上面的代码中的foo成员函数中访问的是其他同类对象中的私有成员,这怎么解释呢/?

论坛徽章:
1
午马
日期:2013-08-23 23:39:47
发表于 2010-07-27 09:10 |显示全部楼层
对象这是两个概念

论坛徽章:
0
发表于 2010-07-27 09:28 |显示全部楼层

论坛徽章:
0
发表于 2010-07-27 09:45 |显示全部楼层
同意四楼的说法!

论坛徽章:
0
发表于 2010-07-27 09:48 |显示全部楼层
这个是最基础的概念,要不然你要怎么操作对象的私有变量阿。
其实让C++封装概念形同虚设的是 指针+偏移,到时候我估计楼主会抓狂。

论坛徽章:
0
发表于 2010-07-27 10:03 |显示全部楼层
这个是最基础的概念,要不然你要怎么操作对象的私有变量阿。
其实让C++封装概念形同虚设的是 指针+偏移,到 ...
davelv 发表于 2010-07-27 09:48



    指针在手, 天下我有{:3_203:}

论坛徽章:
0
发表于 2010-07-27 10:08 |显示全部楼层
指针在手, 天下我有
mgqw 发表于 2010-07-27 10:03

忽然想到很老的一句
世界,world!

论坛徽章:
0
发表于 2010-07-27 11:26 |显示全部楼层
foo函数中为什么能访问到其他同类对象的私有成员呢?我认为即使是同类的两个对象,应该不能彼此的私有成员,就好象每一个个体人,都属于人类,但不能获取其他人的隐私一样啊?...size=2]pengxihan 发表于 2010-07-26 19:00


C++允许程序员设计的两个“人”用友员函数就可以互相获取对方的隐私,这是C++他妈的糟糕特性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP