C++学習ノート:ベクトルクラスの加減算演算を実現し、演算子を再ロードする
15283 ワード
ストリーム演算子と減算演算子の再ロードをレビューします.付与演算子の再ロードを重点的に把握します.void operator=(const Vector&v);
#include
using namespace std;
/*
* :youshen_wwd
* :2020/5/14
* : X=(x1,x2,…,xn) Y=(y1,y2…,yn), 、 :
X+Y=(x1+y1, x2+y2,…, xn+yn)
X-Y=(x1-y1, x2-y2,…, xn-yn)
Vector , ”+”、”-“、”=”, 、 ;
”>>”、”<
class Vector{//
private:
int *Array;
int num;//
public:
Vector(int n){//
num=n;
Array=new int [num];
for (int i=0;i<num;i++)
Array[i]=0;
}
friend istream &operator>>(istream &input,Vector &v);
friend ostream &operator<<(ostream &output,Vector &v);
friend Vector operator+(Vector &v1,Vector &v2);
friend Vector operator- (Vector &v1,Vector &v2);
void operator=(const Vector &v2);
};
void Vector::operator=(const Vector &v2){
//=
num=v2.num;
Array= new int [num];
for (int i=0;i<num;i++){
Array[i]=v2.Array[i];
}
}
Vector operator+(Vector &v1,Vector &v2){
// + ,
int n=v1.num;
Vector v(n);
for (int i=0;i<n;i++){
v.Array[i]=v1.Array[i]+v2.Array[i];
}
return v;
}
Vector operator- (Vector &v1,Vector &v2){
// - ,
int n=v1.num;
Vector v(n);
for (int i=0;i<n;i++){
v.Array[i]=v1.Array[i]-v2.Array[i];
}
return v;
}
istream &operator>>(istream &input,Vector &v){
// >>
cout<<" "<<v.num<<" "<<endl;
for (int i=0;i<v.num;i++){
cin>>v.Array[i];}
return input;
}
ostream &operator<<(ostream &output,Vector &v){
// <
for (int i=0;i<v.num;i++){
cout<<v.Array[i]<<" ";}
return output;
}
int main(){
Vector v1(3),v2(3),v3(3);
cout<<"input v1 please:"<<endl;
cin>>v1;
cout<<"input v2 please:"<<endl;
cin>>v2;
v3=v1+v2;
cout<<"v1+v2="<<v3<<endl;
v3=v1-v2;
cout<<"v1-v2="<<v3<<endl;
v3=v2;
cout<<v3;
}