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

📄 subject_25073.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:25073 发表者:小小阿胖 发表日期:2002-12-18 19:55:44
<br>主题:有关this指针!!!
<br>内容:请问在A类的成员函数内为何<BR>void A::copy(A &amp;aa)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (this==&amp;aa)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;*this=aa;<BR>}&nbsp;&nbsp; 可以,而这样<BR>void A::copy(A &amp;aa)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (*this==aa)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;this=&amp;aa;<BR>}&nbsp;&nbsp;则不行呢??<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>
回复者:晚风也渡 回复日期:2002-12-18 20:06:44
<br>内容:改为(*this)==aa试试<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>
回复者:小小阿胖 回复日期:2002-12-18 20:12:53
<br>内容:是啊,赋值可以,但是放在if后面就不行了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:晚风也渡 回复日期:2002-12-18 20:19:35
<br>内容:什么意思?赋值可以?是说(*this)==a是对的?<BR>什么叫“放在if后面就不行了”?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小小阿胖 回复日期:2002-12-18 20:25:18
<br>内容:就是说*this=aa;可以,而if (*this==aa){}则不行,<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>回复者:晚风也渡 回复日期:2002-12-18 20:27:01
<br>内容:我是说让你改为if((*this)==aa)试试<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>
回复者:小小阿胖 回复日期:2002-12-18 20:31:00
<br>内容:不行<BR> error C2676: binary '==' : 'class A' does not define this operator or a conversion to a type acceptable to the predefined operator
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:凯凯 回复日期:2002-12-18 21:01:55
<br>内容:因为你的类A没有一个相应的==运算符,所以不行。<BR>原来的那个==操作符接受的左值是一个指针。而你这样调用时*this==aa,左值是一个对象,所以编译不过。<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>
回复者:小小阿胖 回复日期:2002-12-18 21:03:52
<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>
回复者:小缪 回复日期:2002-12-18 21:11:05
<br>内容:你的this指针是指向类A的,你上面的是进行地址相等比较<BR>而后面的是进行类的两个实体比较,你在类A中没有从载运算符==<BR>所以出错!!<BR>你在类A中要从载==运算符!!
<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 + -