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

📄 subject_28008.htm

📁 vc
💻 HTM
字号:
<p>
序号:28008 发表者:曦 发表日期:2003-01-17 09:45:54
<br>主题:看书看到重载的时候出现问题了!
<br>内容:就是看不懂,一点都看不懂!<BR>#include &lt;iostream.h&gt;<BR>#include &lt;iomanip.h&gt;<BR><BR>class PhoneNumber<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;friend ostream &amp;operator &lt;&lt; (ostream&amp;, const PhoneNumber &amp;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;friend istream &amp;operator &gt;&gt; (istream&amp;, PhoneNumber &amp;);<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;char areaCode[4];<BR>&nbsp;&nbsp;&nbsp;&nbsp;char exchange[4];<BR>&nbsp;&nbsp;&nbsp;&nbsp;char line[5];<BR>};<BR><BR>ostream &amp;operator &lt;&lt; (ostream &amp;output, const PhoneNumber &amp;num)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;output &lt;&lt; "(" &lt;&lt; num.areaCode &lt;&lt; ")"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; num.exchange &lt;&lt; "-" &lt;&lt; num.line;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return output;<BR>}<BR><BR>istream &amp;operator &gt;&gt; (istream &amp;input, PhoneNumber &amp;num)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;input.ignore();<BR>&nbsp;&nbsp;&nbsp;&nbsp;input &gt;&gt; setw(4) &gt;&gt; num.areaCode;<BR>&nbsp;&nbsp;&nbsp;&nbsp;input.ignore(2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;input &gt;&gt; setw(4) &gt;&gt; num.exchange;<BR>&nbsp;&nbsp;&nbsp;&nbsp;input.ignore();<BR>&nbsp;&nbsp;&nbsp;&nbsp;input &gt;&gt; setw(5) &gt;&gt; num.line;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return input;<BR>}<BR><BR>int main()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;PhoneNumber phone;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; "Enter phone number in the form(123) 456-7890:\n";<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cin &gt;&gt; phone;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; "The phone number entered was: " &lt;&lt; phone &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>不明白这个operator是什么意思,起什么作用,还有为什么书上说cin &gt;&gt; phone;即生成函数调用operator &gt;&gt; (cin, phone);这两个好像没办法联系起来啊!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:不败的石头 回复日期:2003-01-17 10:09:30
<br>内容:operator是重载标识符,意思是重载+,=,&lt;&lt;等运算符<BR>简单解释一下,你就把&lt;&lt;当作一个成员函数(虽然长得怪一点)吧<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>
回复者:曦 回复日期:2003-01-17 10:37:07
<br>内容:重载运算符是不是可以这么认为(愚见):<BR>当对象调用重载运算符时,对象会生成函数调用,即调用起成员函数,例如s.operator!()。<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 + -