📄 subject_25073.htm
字号:
<p>
序号:25073 发表者:小小阿胖 发表日期:2002-12-18 19:55:44
<br>主题:有关this指针!!!
<br>内容:请问在A类的成员函数内为何<BR>void A::copy(A &aa)<BR>{<BR> if (this==&aa)<BR> return;<BR> *this=aa;<BR>} 可以,而这样<BR>void A::copy(A &aa)<BR>{<BR> if (*this==aa)<BR> return;<BR> this=&aa;<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>
回复者:晚风也渡 回复日期: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 + -