⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_54673.htm

📁 vc
💻 HTM
字号:
<p>
序号:54673 发表者:少文 发表日期:2003-09-29 22:03:37
<br>主题:类
<br>内容:#include &lt;iostream.h&gt;<BR>class psw<BR>{ private:<BR>&nbsp;&nbsp;double c,d;<BR>&nbsp;&nbsp;protected:<BR>&nbsp;&nbsp;void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR>&nbsp;&nbsp;{ int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=a+b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;c&lt;&lt;endl;<BR>&nbsp;&nbsp;}<BR>void main()<BR>{ int a,b;<BR>&nbsp;&nbsp;cin&gt;&gt;a&gt;&gt;b;<BR>&nbsp;&nbsp;cout&lt;&lt;add(a,b)&lt;&lt;endl;<BR>}此程序为什么得不到原本的答案?<BR>#include &lt;iostream.h&gt;<BR>class psw<BR>{ private:<BR>&nbsp;&nbsp;double c,d;<BR>&nbsp;&nbsp;protected:<BR>&nbsp;&nbsp;void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR>&nbsp;&nbsp;{ int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=a+b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;c&lt;&lt;endl;<BR>&nbsp;&nbsp;}<BR>void main()<BR>{ psw a;<BR>&nbsp;&nbsp;cout&lt;&lt;&#34;a+b&#34;&lt;&lt;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 &lt;iostream.h&gt;<BR>class psw<BR>{ private:<BR>&nbsp;&nbsp;double c,d;<BR>&nbsp;&nbsp;public:<BR>&nbsp;&nbsp;void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR>&nbsp;&nbsp;{ int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=a+b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;c&lt;&lt;endl;<BR>&nbsp;&nbsp;}<BR>void main()<BR>{ int a,b;<BR>&nbsp;&nbsp;cin&gt;&gt;a;<BR>&nbsp;&nbsp;cin&gt;&gt;b;<BR>&nbsp;&nbsp;psw p;<BR>&nbsp;&nbsp;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++]$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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 &lt;iostream.h&gt;<BR>class psw<BR>{ private:<BR>&nbsp;&nbsp;double c,d;<BR>&nbsp;&nbsp;public:<BR>&nbsp;&nbsp;void add(int a,int b);<BR>};<BR>void psw::add(int a,int b)<BR>&nbsp;&nbsp;{ int c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c=a+b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;c&lt;&lt;endl;<BR>&nbsp;&nbsp;}<BR>void main()<BR>{ psw a;<BR>&nbsp;&nbsp;//cout&lt;&lt;&#34;a+b&#34;&lt;&lt;<BR>&nbsp;&nbsp;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++]$&nbsp;&nbsp;&nbsp;&nbsp; <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 + -