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

📄 subject_51449.htm

📁 vc
💻 HTM
字号:
<p>
序号:51449 发表者:天才 发表日期:2003-09-01 17:07:36
<br>主题:关于赋值运算符的重载
<br>内容:请看下面有两种重载赋值运算符的方法:<BR>class student<BR>{<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;student() {}<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;student(unsigned int iID,unsigned int iAge):m_iID(iID),m_iAge(iAge) {}<BR>&nbsp;&nbsp;&nbsp;&nbsp;/*void operator=(const student&amp; s)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&amp;s!=this)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iID=s.m_iID;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iAge=s.m_iAge;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;student&amp; operator=(const student&amp; s)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&amp;s!=this)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iID=s.m_iID;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_iAge=s.m_iAge;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return *this;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;void print()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&lt;&lt;&#34;ID is &#34;&lt;&lt;m_iID&lt;&lt;&#34; and Age is &#34;&lt;&lt;m_iAge&lt;&lt;std::endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;unsigned int m_iID;<BR>&nbsp;&nbsp;&nbsp;&nbsp;unsigned int m_iAge;<BR>};<BR><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>
回复者:dongfanghong 回复日期:2003-09-01 17:22:13
<br>内容:有区别:<BR>第二种支持:<BR>a=b=c<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>回复者:iamhere 回复日期:2003-09-01 17:24:15
<br>内容:区别在于返回值的不同,返回值为student&amp;的还可以这么调用:<BR>student s1( 100 , 20 );<BR>student s2( 200 , 10 ); ;<BR>student s3 = ( s2 = s1 );<BR>而返回值为void *的却是不能
<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-09-02 09:08:50
<br>内容:因为iamhere使用了s3=(s2=s1)这种表达方式,而且叙述较详细,所以分给您了,东方兄不好意思了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dongfanghong 回复日期:2003-09-02 13:00:53
<br>内容:吸取教训,高手和菜鸟的差别啊,就是是否写清楚了。<BR>2003-9-2 13:03:42

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -