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

📄 subject_52475.htm

📁 vc
💻 HTM
字号:
<p>
序号:52475 发表者:提刀入人间 发表日期:2003-09-11 11:27:45
<br>主题:操作符重载出错,兄弟门帮帮忙!c2679错误!
<br>内容:#include &#34;mytime0.h&#34;<BR><BR>time:: time ()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = minutes = 0 ;<BR>}<BR>time :: time (int h , int m)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = h;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes = m;<BR>}<BR>void time :: addmin (int m)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes += m;<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours += minutes /60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes %= 60;<BR>}<BR>void time :: addhr (int h)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = h;<BR>}<BR>void time :: reset (int h,int m)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = h;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes = m;<BR>}<BR>time time :: operator +&nbsp;&nbsp;(const time &amp; t ) const<BR>{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;time sum;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sum . minutes = minutes + t. minutes;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sum.hours = hours + t. hours + sum . minutes /60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sum . minutes %= 60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return sum;<BR>}<BR>void time ::show () const<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; hours &lt;&lt; &#34;hours &#34;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt; minutes &lt;&lt; &#34;minutes &#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;\n&#34;;<BR>}<BR>#include &lt;iostream&gt;<BR>#include &#34;mytime0.h&#34;<BR>using namespace std;<BR>int main ()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;time a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;time b (5,40);<BR>&nbsp;&nbsp;&nbsp;&nbsp;time c (2,55);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;a=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;a . show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;b=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;b . show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;c=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c. show ();<BR><BR><BR>这一行:&nbsp;&nbsp;&nbsp;&nbsp;a = b . operator + ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;a = b . operator + =&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;a . show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;b=a +c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;a +c=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;b. show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR>g:\save\my ebooks\usetime.cpp(18) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class time (__thiscall time::*)(const class time &amp;) const' (or there is no acceptable conversion)<BR>&nbsp;&nbsp;&nbsp;&nbsp;
<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-11 11:28:52
<br>内容:MSDN的解释,看不懂!<BR>Compiler Error C2679<BR>binary 'operator' : no operator defined which takes a right-hand operand of type 'type' (or there is no acceptable conversion)<BR><BR>Define a constructor or conversion operator to make the required conversion. If you’ve encountered this error on code which compiled with an earlier version of Visual C++, please read Technote: Improved Conformance to ANSI C++ for more information.<BR><BR>The following is an example of this error:<BR><BR>class C<BR>{<BR>&nbsp;&nbsp; public:<BR>&nbsp;&nbsp; C();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // no constructor with an int argument<BR>} c;<BR>class D<BR>{<BR>&nbsp;&nbsp; public:<BR>&nbsp;&nbsp; D( int );<BR>&nbsp;&nbsp; D();<BR>} d;<BR>void main()<BR>{<BR>&nbsp;&nbsp; c = 10;&nbsp;&nbsp;&nbsp;&nbsp;// error<BR>&nbsp;&nbsp; d = 10;&nbsp;&nbsp;&nbsp;&nbsp;// OK<BR>}<BR><BR><BR>--------------------------------------------------------------------------------<BR>Send feedback to MSDN.Look here for MSDN Online resources. 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ShaGua 回复日期:2003-09-11 11:41:59
<br>内容:应该说的是返回的数据问题。<BR>time不能实现转换。<BR><BR>time time :: operator +&nbsp;&nbsp;(const time &amp; t ) const<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>
回复者:提刀入人间 回复日期:2003-09-11 11:44:44
<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>回复者:ShaGua 回复日期:2003-09-11 12:01:06
<br>内容:增加一个构造函数:<BR>time (time &amp;t);<BR>在b=a+c;时候返回结果时候要用到。<BR><BR>下面是一个例子,不是很完善:<BR>#include &lt;iostream&gt;<BR>//#include &#34;mytime0.h&#34;<BR>using namespace std;<BR><BR><BR>class time <BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;time ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;time (int h,int m); <BR>&nbsp;&nbsp;&nbsp;&nbsp;time (time &amp;t);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;void addmin (int m);<BR>&nbsp;&nbsp;&nbsp;&nbsp;void addhr (int h);<BR>&nbsp;&nbsp;&nbsp;&nbsp;void reset (int h,int m);<BR>&nbsp;&nbsp;&nbsp;&nbsp;void show () const;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;time&amp; operator =&nbsp;&nbsp;(const time &amp; t ) ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;time operator +&nbsp;&nbsp;(const time &amp; t ) ;<BR><BR>protected:<BR>&nbsp;&nbsp;&nbsp;&nbsp;int hours;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int minutes;<BR>};<BR><BR>time:: time ()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = minutes = 0 ;<BR>}<BR><BR>time :: time (int h , int m)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = h;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes = m;<BR>}<BR><BR>time ::time(time &amp;t)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes = t. minutes;<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = t.hours+minutes /60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes %= 60;<BR>}<BR><BR>void time :: addmin (int m)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes += m;<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours += minutes /60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes %= 60;<BR>}<BR>void time :: addhr (int h)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = h;<BR>}<BR>void time :: reset (int h,int m)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = h;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes = m;<BR>}<BR><BR>time time :: operator +&nbsp;&nbsp;(const time &amp; t ) <BR>{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes += t. minutes;<BR>&nbsp;&nbsp;&nbsp;&nbsp;hours = hours + t. hours +minutes /60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;minutes %= 60;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return *this;<BR>}<BR><BR>void time ::show () const<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; hours &lt;&lt; &#34;hours &#34;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt; minutes &lt;&lt; &#34;minutes &#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;\n&#34;;<BR>}<BR><BR>int main ()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;time a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;time b (5,40);<BR>&nbsp;&nbsp;&nbsp;&nbsp;time c (2,55);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;a=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;a . show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;b=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;b . show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;c=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c. show ();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;a = b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;a = b . operator + =&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;a . show ();<BR>&nbsp;&nbsp;&nbsp;&nbsp;b=a +c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;a +c=&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;b. show ();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>2003-9-11 13:10:28

⌨️ 快捷键说明

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