问题描述
publicstaticVectoroperator+(VectorIhs,Vectorrhs){Vectorresult=newVector(Ihs);result.x+=rhs.x;returnresult;}这是什幺意思有什幺作用会产生什幺结果我是这样理解的:令result等于Ihs再把Ihs.x和rhs.x的值相加等于Ihs.x的值再返回Ihs.x也就是返回result.x谢谢指教非常抱歉没分了
解决方案
解决方案二:
这是一个Vector类对“+”操作符的重载方法为的是实现可以直接对两个Vector类的实例使用“+”操作符,例如此类代码:Vectora=newVector();Vectorb=newVector();Vectorc=a+b;以上代码“Vectorc=a+b;”就会进入这个方法,参数Ihs就是a参数rhs就是b在这个方法中的第一句代码:“Vectorresult=newVector(Ihs);”是因为Vector类有一个类似如下的复制构造方法:publicVector(Vectorv){this.x=v.x;//其他成员变量赋值}实现了可以将一个Vector实例复制构造为另一个Vector实例的功能这两个实例的成员变量是一摸一样的,但是是两个不同的实例。所以“再返回Ihs.x也就是返回result.x”你的这句话是不正确的。这个方法返回的是一个复制了Ihs的变量值,在加上rhs值的新实例。
时间: 2024-09-20 08:13:06