免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4595 | 回复: 20
打印 上一主题 下一主题

[C++] A(const A & other)实现时为何可以引用other的私有变量?不违反访问规则? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-09 15:00 |只看该作者 |正序浏览

class A
{
public:
  A ( const A & other)
  {
    m_data = other.m_data;
  }

  A & operator = ( const A & other)
  {
    m_data = other.m_data;
  }

private:
  int m_data;
};

论坛徽章:
0
21 [报告]
发表于 2009-01-13 14:57 |只看该作者
这种问题讨论很多了,都说是c++规定得 ,但都有各自得说法,

就是没有个真正令人信服得原因,

感觉这问题就像  printf("%d%d%d%d",a++,++a,a--,--a)

这样没有意义

论坛徽章:
0
20 [报告]
发表于 2009-01-13 11:52 |只看该作者
原帖由 netip 于 2009-1-13 11:21 发表
这个问题讨论的很深入,让我加深了对类作用域的理解,呵呵


学东西了,知道双胞胎之间没有隐私了。

论坛徽章:
0
19 [报告]
发表于 2009-01-13 11:21 |只看该作者
这个问题讨论的很深入,让我加深了对类作用域的理解,呵呵

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
18 [报告]
发表于 2009-01-13 10:35 |只看该作者
原帖由 ASDF@AKSJF 于 2009-1-13 09:24 发表


艹,双胞胎就没有秘密了,是你傻还是C++有露癖。


     据报道,很多双胞胎尤其是同卵双胞胎在结婚以前认为彼此之间你就是我我就是你,没有秘密。

C++ 类不存在结婚问题,所以 C++ 的设计没问题。

论坛徽章:
0
17 [报告]
发表于 2009-01-13 09:24 |只看该作者
原帖由 zhujiang73 于 2009-1-12 22:49 发表


这就好像是双胞胎之间没有秘密。
C++ 中规定私有成员只有同一个类中的成员函数才可以访问,注意限定是同一个类不是同一个实例。


艹,双胞胎就没有秘密了,是你傻还是C++有露癖。

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
16 [报告]
发表于 2009-01-12 22:49 |只看该作者
原帖由 csoapy 于 2009-1-9 15:00 发表

class A
{
public:
  A ( const A & other)
  {
    m_data = other.m_data;
  }

  A & operator = ( const A & other)
 &nbsp ...


这就好像是双胞胎之间没有秘密。
C++ 中规定私有成员只有同一个类中的成员函数才可以访问,注意限定是同一个类不是同一个实例。

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
15 [报告]
发表于 2009-01-12 22:40 |只看该作者
原帖由 ztmrx2009 于 2009-1-10 14:31 发表
记得前不久谁说的很好,大概是这样说的:
C++的程序员们,如果你在做某件事觉得别扭时,就往回走走,看看前面是不是有狗东西逼你这样做了。

楼主,你现在感觉别扭吧,解放思想,想想是不是C++本身的问题呢。


      我又看到了不同的用户名同样的文风。这正是名字百变,风格永存。

论坛徽章:
0
14 [报告]
发表于 2009-01-12 20:12 |只看该作者
原帖由 qvppvq 于 2009-1-12 16:17 发表


你买了个有这样那样问题的产品,不去找商家理论,却自己整天憋着尿小心使用,你这不傻么!

这个世界上有完美的东西吗?

论坛徽章:
0
13 [报告]
发表于 2009-01-12 16:17 |只看该作者
原帖由 fera 于 2009-1-10 14:35 发表

C++是有这样那样的问题。但如果因为没有掌握好而怪罪它时,那就是你的问题。


你买了个有这样那样问题的产品,不去找商家理论,却自己整天憋着尿小心使用,你这不傻么!
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP