3. 实验六——输入输出2

【问题描述】

定义一个3维向量类,要求重载运算符“+”实现向量加法和 “+=”实现赋值加法。

【样例输入】

23.4 -9.8 15

7.28 66 29.5

【样例输出】

v1: (30.68,56.2,44.5)

v1: (54.08,46.4,59.5)

【说明】

【样例输出】的每行数据后面没有空行。

#include  <iostream>
using  namespace  std;
class  Vector
{
        double  v[3];
public:

Vector();
Vector operator+(Vector c);
const Vector& operator+=(const Vector& x);
friend istream& operator>>(istream& in, Vector& vec) ;

        void  Print()
        {
                cout<<'('<<v[0]<<','<<v[1]<<','<<v[2]<<')'<<endl;
        }
};
int  main()
{
        Vector  v1,v2,v3;
        cin>>v2;
        cin>>v3;
        v1=v2+v3;
        cout<<"v1:  ";
        v1.Print();
        v1+=v2;
        cout<<"v1:  ";
        v1.Print();
}

Vector::Vector(){
v[0]=0;
v[1]=0;
v[2]=0;
}
Vector Vector::operator+(Vector c){
Vector a;
a.v[0]=v[0]+c.v[0];
a.v[1]=v[1]+c.v[1];
a.v[2]=v[2]+c.v[2];
return a;
}
const Vector& Vector::operator+=(const Vector& c){
for (int i = 0; i < 3; ++i) {
            v[i] +=c.v[i];
        }
return *this;
}
 istream& operator>>(istream& in, Vector& vec) {
        in >> vec.v[0] >> vec.v[1] >> vec.v[2];
        return in;
 }

【注】此分栏为西安理工大学C++练习题,所有答案仅供同学们参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值