各位,能否帮小弟看看这个代码,先谢了

jazzjerry 2001-06-07 08:49:00
class two_d
{
int x,y;
public:
two_d(int vx,int vy) {x=vx;y=vy;}
two_d() {x=0;y=0;}
*two_d operator = (two_d t);
*two_d operator + (two_d t);
void print(){cout<<"x="<<x<<" "<<"y="<<y<<"\n";}
};
带*的两行是什么意思?
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KissYou 2001-06-07
  • 打赏
  • 举报
回复
参数当然得是two_d。你想:操作符重载 实际上是为了对类的多个对象进行相互操作时提供方便,那么它能操作的参数就必须是这种类类型了。
至于返回类型,如果你明白C语言中的语法:
表达式 3+2 返回的是整数5;
3.0+2.0返回的是浮点型5.0;
那么在C++中,表达式 A+B返回的也当然是A.B所属的类型了。
jazzjerry 2001-06-07
  • 打赏
  • 举报
回复
为什么返回类形和参数都是two_d?是c++规定的嘛?
inhua 2001-06-07
  • 打赏
  • 举报
回复
就是运算符重载
KissYou 2001-06-07
  • 打赏
  • 举报
回复
two_d operator = (two_d t);
意义:当你用two_d 为名字定义两个对象A,B时,如果你需要执行赋值操作A=B或B=A,那么系统就调用这个成员函数来执行具体的赋值。
two_d operator + (two_d t);
意义:同上,当你定义了三个对象A,B,C后,如果要执行操作:A=B+C 那么怎样将对象B和C相加呢?系统实际上是调用这个函数来执行相加的操作。
另外:operator = 或operator + 是C++里定义的一种操作符重载函数,它可以保证你对任意的类所生成的对象,用户都可以象一般的3+2那样来对对象进行操作,实际上是提供了一种方便的机制。
不知我说明白没有?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧