64,651
社区成员
发帖
与我相关
我的任务
分享
int main()
{
cout<<"输入向量的维数:";
int len;
cin>>len;
int num_1[LEN],num_2[LEN];//改成这样,能用len吗?
cout<<"输入含"<<len<<"个数据的向量1:";
#include<iostream>
#include<iomanip>//控制格式
using namespace std;
const int MAX = 20;
class vector
{
public:
vector(int n){length = n;}
vector(int num[], int n);
//这里参数都设置为const引用
friend vector operator + (const vector &a, const vector &b);
friend vector operator - (const vector &a, const vector &b);
friend vector operator * (const vector &a, const vector &b);
//vector & operator = (const vector & a);/重载operator=不是必须的!
void display();
private:
int X[ MAX ];
int length;
};
vector::vector(int num[], int n)
{
int i;
for(i=0; i<n; i++)
{
X[i]= num[i];
}
length=n;
}
vector operator+(const vector & a, const vector & b)
{
vector temp(a.length);
for(int i=0; i<a.length; i++)
{
temp.X[i] = a.X[i] + b.X[i];
}
return temp;
}
vector operator-(const vector & a, const vector & b)
{
vector temp(a.length);
for(int i=0; i<a.length; i++)
{
temp.X[i] = a.X[i] - b.X[i];
}
return temp;
}
vector operator*(const vector & a, const vector & b)
{
vector temp(a.length);
for(int i=0; i<a.length; i++)
{
temp.X[i] = a.X[i] * b.X[i];
}
return temp;
}
/*
vector & vector:: operator=(const vector & a)
{
length=a.length;
for(int i=0; i<a.length; i++)
{
X[i] = a.X[i];
}
return *this;
}*/
void vector::display()
{
for(int i=0; i<length; i++)
{
cout<<setw(4)<<X[i];
}
cout<<endl;
}
int main()
{
cout<<"输入向量的维数:";
int len;
cin>>len;
int num_1[len], num_2[len];
cout<<"输入含"<<len<<"个数据的向量1:";
int j = 0;
while(j < len)
{
cin>>num_1[j];
j++;
}
cout<<"输入含"<<len<<"个数据的向量2:";
int i = 0;
while(i < len)
{
cin>>num_2[i];
i++;
}
vector obj1(num_1,len), obj2(num_2,len), obj3(len);
cout<<"************************************************\n"
<<"向量1: ";
obj1.display();
cout<<"向量2: ";
obj2.display();
cout<<"操作:";
char op;
cin>>op;
cout<<endl;
switch(op)
{
case '+' : obj3 = obj1 + obj2;
break;
case '-' : obj3 = obj1 - obj2;
break;
case '*' : obj3 = obj1 * obj2;
break;
case '=' : obj3 = obj2; //=>obj3.operator=(obj1)
break;
}
obj3.display();
cout<<"************************************************\n";
system("pause");
return 0;
}
#include"iostream"
#include"iomanip" //控制格式
using namespace std;
const int MAX = 20;
class vector
{
public:
vector(int n){length=n;}
vector(int num[],int n);
vector(const vector &obj)
:length(obj.length)
{
for(int i=0;i!=MAX;++i)
{
X[i]=obj.X[i];
}
}
friend vector operator + (vector &a,vector &b);
friend vector operator - (vector &a,vector &b);
friend vector operator * (vector &a,vector &b);
vector & operator = ( vector a); //mark,可以运行了,但是不要这样写
void display();
private:
int X[ MAX ];
int length;
};
vector::vector( int num[],int n)
{
int i;
for(i=0;i<n;i++)
{
X[i]= num[i];
}
length=n;
}
vector operator+(vector & a,vector & b)
{
vector temp(a.length);
for(int i=0;i<a.length;i++)
{
temp.X[i]=a.X[i]+b.X[i];
}
return temp;
}
vector operator-(vector & a,vector & b)
{
vector temp(a.length);
for(int i=0;i<a.length;i++)
{
temp.X[i]= a.X[i]-b.X[i];
}
return temp;
}
vector operator*(vector & a,vector & b)
{
vector temp(a.length);
for(int i=0;i<a.length;i++)
{
temp.X[i] = a.X[i] * b.X[i];
}
return temp;
}
vector & vector:: operator=(vector a) //mark,使用const &
//改为你的vector a也正常运行了
{
length=a.length;
for(int i=0;i<a.length;i++)
{
X[i]=a.X[i];
}
return *this;
}
void vector::display()
{
for(int i=0;i<length;i++)
{
cout<<setw(4)<<X[i];
}
cout<<endl;
}
int main()
{
cout<<"输入向量的维数:";
int len;
cin>>len;
int num_1[100],num_2[100]; //mark:数组不能用变量
cout<<"输入含"<<len<<"个数据的向量1:";
int j=0;
while(j<len)
{
cin>>num_1[j];
j++;
}
cout<<"输入含"<<len<<"个数据的向量2:";
int i=0;
while(i<len)
{
cin>>num_2[i];
i++;
}
vector obj1(num_1,len), obj2(num_2,len),obj3(len);
cout<<"************************************************\n"
<<"向量1: ";
obj1.display();
cout<<"向量2: ";
obj2.display();
cout<<"操作:";
char op;
cin>>op;
cout<<endl;
switch(op)
{
case '+' : obj3= obj1+obj2;
break;
case '-' : obj3 = obj1-obj2;
break;
case '*' : obj3 = obj1*obj2;
break;
case '=' : obj3 = obj2; //=>obj3.operator=(obj1)
break;
}
obj3.display();
cout<<"************************************************\n";
system("pause");
return 0;
}
vector & vector:: operator=(const vector & a)