📄 subject_39446.htm
字号:
<p>
序号:39446 发表者:IEEE 发表日期:2003-05-11 09:00:38
<br>主题:请教大虾
<br>内容:C++中规定类的对象无权访问该类的private及protected成员,但下面的程序却难以理解。<BR>#include "iostream.h"<BR>class a<BR>{<BR>protected:<BR> int i;<BR>public:<BR> a(int x) { i=x; }<BR> a(a &c) { i=c.i; } //c直接访问了protected成员 i,编译没问题!<BR> void show() { cout<<i<<endl; }<BR>}<BR><BR>void main()<BR>{<BR> a d(9);<BR> a d1(d);<BR> d1.show();<BR> cout<<d.i<<endl; //d直接访问了protected成员 i,编译有问题!<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:擎天柱 回复日期:2003-05-11 09:15:24
<br>内容: a(a &c) { i=c.i; } //c直接访问了protected成员 i,编译没问题!<BR>当然没有问题了,c的类型是a,也就是他自己,自己当然可以访问自己的保护类型的成员了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:IEEE 回复日期:2003-05-11 09:23:44
<br>内容:能否讲详细点,应该说c是a类型的另外一个对象.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:theta 回复日期:2003-05-11 10:22:55
<br>内容:C++中规定类的对象无权访问该类的private及protected成员,但是在该类的成员函数定义中可以访问本类的对象的private及protected成员。如:<BR><BR>class a<BR>{<BR>protected:<BR> int i;<BR>public:<BR> a(int x) { i=x; }<BR> a(a &c) { i=c.i; } //c直接访问了protected成员 i,编译没问题!<BR> void show() <BR> { <BR> a d(12);<BR> cout << d.i << endl;<BR> cout<<i<<endl; <BR> }<BR> void foo1()<BR> { <BR> a d(12);<BR> cout << d.i << endl;<BR> d.i++;<BR> cout << d.i << endl;<BR> }<BR> void foo2(a& d)<BR> { <BR> cout << d.i << endl;<BR> d.i++;<BR> cout << d.i << endl;<BR> }<BR>};<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:IEEE 回复日期:2003-05-11 18:27:07
<br>内容:you are right!<BR>thanks.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -