📄 subject_54673.htm
字号:
<p>
序号:54673 发表者:少文 发表日期:2003-09-29 22:03:37
<br>主题:类
<br>内容:#include <iostream.h><BR>class psw<BR>{ private:<BR> double c,d;<BR> protected:<BR> void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR> { int c;<BR> c=a+b;<BR> cout<<c<<endl;<BR> }<BR>void main()<BR>{ int a,b;<BR> cin>>a>>b;<BR> cout<<add(a,b)<<endl;<BR>}此程序为什么得不到原本的答案?<BR>#include <iostream.h><BR>class psw<BR>{ private:<BR> double c,d;<BR> protected:<BR> void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR> { int c;<BR> c=a+b;<BR> cout<<c<<endl;<BR> }<BR>void main()<BR>{ psw a;<BR> cout<<"a+b"<<a.add(10,20);<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-09-29 22:32:16
<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>
<font color=red>答案被接受</font><br>回复者:yiguozhen 回复日期:2003-09-30 10:24:57
<br>内容:程序可以改为:#include <iostream.h><BR>class psw<BR>{ private:<BR> double c,d;<BR> public:<BR> void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR> { int c;<BR> c=a+b;<BR> cout<<c<<endl;<BR> }<BR>void main()<BR>{ int a,b;<BR> cin>>a;<BR> cin>>b;<BR> psw p;<BR> p.add(a,b);<BR>}<BR>===================================<BR>执行结果:[xx0048@yward c++]$ g++ tt.cpp -o tt.o<BR>[xx0048@yward c++]$ ./tt.o<BR>888987<BR>56466<BR>945453<BR>[xx0048@yward c++]$ <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>
回复者:yiguozhen 回复日期:2003-09-30 10:35:52
<br>内容:程序二改为:#include <iostream.h><BR>class psw<BR>{ private:<BR> double c,d;<BR> public:<BR> void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR> { int c;<BR> c=a+b;<BR> cout<<c<<endl;<BR> }<BR>void main()<BR>{ psw a;<BR> //cout<<"a+b"<<<BR> a.add(10,20);<BR>}<BR>================================<BR>执行结果:<BR>[xx0048@yward c++]$ g++ tt.cpp -o tt.o<BR>[xx0048@yward c++]$ ./tt.o<BR>30<BR>[xx0048@yward c++]$ <BR>--------------------------------------<BR>原因:<BR>protected 的函数的私有的函数,不能为客户程序显式调用。<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>
回复者:独行侠1 回复日期:2003-10-08 15:03:06
<br>内容:to1楼<BR>外部函数是不能访问保护成员的;<BR>若要访问,可以在类中定义一个public 的成员函数,用这个成员函数来访问类的保护成员.<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>
回复者:独行侠1 回复日期:2003-10-09 20:25:10
<br>内容:补充一点,定义友元函数也可以访问类中的保护成员。
<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 + -