C++拷贝构造函数中为什么可以访问另一个对象的以太坊 私有类对象

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)查看:5498|回复:7
请问为什么在复制构造函数里可以直接访问被引用对象的私有成员
&&class my
my(const my &a)
鼓励积极的思考
复制内容到剪贴板代码:my(const my &a)
赋值构造函数还有一个隐含实参this指向引用该函数的对象
也可表述如下:
my(const my &a)
&&this-&num=a.
只有你爬到山顶了,这座山才会支撑着你。
还有类得成员函数可以访问类得私有成员
这是常识。
只有你爬到山顶了,这座山才会支撑着你。
中级工程师
月夜,楼主是问为什么对象a的私有成员num能够被另外一个正在被构建的对象的复制构造函数使用。
我想他是把“私有”这一个概念理解错了引用:原帖由 月夜幻影 于
21:04 发表
还有类得成员函数可以访问类得私有成员
这是常识。
The best of man is like water
Which benefits all things, and does not contend with them
Which flows in places that others disdain
Where it is in harmony with the Way
中级工程师
楼主你好,首先非常肯定你能提出这个问题,因为我自己以前从没思考过这个问题。
按我的理解,你没有理解清楚“私有成员”的关系。
首先,成员访问控制符public、private以及protected都是基于类而言的,如果一个类标记了private访问权限,其意思是——这个类以外的其他类(友元类除外)无法访问被private修饰的本类成员,但是本类自身是不受成员访问符限制的。
现在来看你的例子
那么在my类中有一个private的成员num,其意思是——成员num对于my类以外的其他类(友元类除外)都不可见(或不可访问),但my类自己并不受限于访问权限。
不知道你是否理解了:(mars_20):引用:原帖由 sheldon5656 于
20:57 发表
请问为什么在复制构造函数里可以直接访问被引用对象的私有成员
&&class my
my(const my &a)
The best of man is like water
Which benefits all things, and does not contend with them
Which flows in places that others disdain
Where it is in harmony with the Way
理解了,谢谢、、
呵呵,不错嘛,路过进来看看学习学习一下,多谢分享,支持一下楼主!
引用:楼主你好,首先非常肯定你能提出这个问题,因为我自己以前从没思考过这个问题。
按我的理解,你没有理解清楚“私有成员”的关系。
首先,成员访问控制符public、private以及protected都是基于类而言的,如果一个类标记了private访问权限,其意思是——这个类以外的其他类(友元类除外)无法访问被private修饰的本类成员,但是本类自身是不受成员访问符限制的。
现在来看你的例子
那么在my类中有一个private的成员num,其意思是——成员num对于my类以外的其他类(友元类除外)都不可见(或不可访问),但my类自己并不受限于访问权限。
不知道你是否理解了mars_20):我表示你还没明白楼主的意思,从你的回答来看,是不是说my类中的私有数据成员可以被自己的对象直接使用呢,显然这是错误的?复制内容到剪贴板代码:class my{& && & int num;& && & private:& && && && && && &&&void getnum(int x){num=x;}} A;void main(){& && &cout&&A.& && && && && && && &//这显然有问题,不是吗?}这是关于c++的,我想问的是,在复制构造函数中n = a.n; n不是属于对象私有的吗,在这里怎么能直接访问呢_百度知道
这是关于c++的,我想问的是,在复制构造函数中n = a.n; n不是属于对象私有的吗,在这里怎么能直接访问呢
#include &iostream&
cout&&&默认构造函数&&&
num(int i)
cout&&&普通构造函数&&&
num(num &a)
cout&&&复制构造函数&&&e...
我有更好的答案
例:int main(){
cout&&i.n&&lt作用域是相对与类来说的,你这个复制构造函数在类中使用;/i 是类外成员,所以不能直接访问类的私有成员;&#47,所以可以直接访问私有成员。私有是指类外成员不能直接访问
采纳率:42%
私有的相对于类的继承者和实例来说的,而在类自己的实现内部,是没有这样的概念的。
在类里是可以的。
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。关于拷贝构造函数中的对象访问私有成员变量的问题
视频中的前两个例子中,在实现拷贝构造函数时,m_iCount等是类的私有成员变量,为什么拷贝构造函数中可以直接用对象加点的形式直接访问呢?
感谢,看教学视频的时候一直在想这个问题!
写下你的评论...
写下你的评论...
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-2在拷贝构造函数中为什么可以访问引用对象的私有变量? [问题点数:0分] - 冰花ぃ雪魄 - 博客园
随笔 - 599
阅读(...) 评论()}

我要回帖

更多关于 php 获取对象私有属性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信