运行不了

折冲千里之上 2014-04-08 06:28:55
#include <string>
#include <string.h>
#include <iostream>
#include <iostream>
using namespace std;
class Vector
{
private:
double *v;
int len;
public:
Vector(int size);
Vector(double *,int);
~Vector();
double &operator[](int i);
Vector & operator =(Vector &);
friend Vector operator +(Vector &,Vector &);
friend Vector operator -(Vector &,Vector &);
friend double operator *(Vector &,Vector &);
friend ostream & operator <<(ostream &output,Vector &);
friend istream & operator >>(istream &input,Vector &);
};
Vector::Vector (int size)
{
if(size<=0||size>=2147483647)
{ cout<<"The size of "<<size<<"is overflow!\n";
abort();
}
v=new double [size];
for(int i=0;i<size;i++) v[i]=0;
len=size;
}
Vector::Vector(double *C,int size)
{
if(size<=0||size>=2147483647)
{ cout<<"The size of"<<size<<"is overflow!\n"<<endl;
abort();
}
v=new double[size];
len=size;
for(int i=0;i<len;i++) v[i]=C[i];
}
Vector::~Vector()
{
delete []v;
v=NULL; len=0;
}
double &Vector::operator[](int i)
{
if(i>=0 && i<len)
return v[i];
else
{ cout<<"The size of"<<i<<"is overflow!\n";
abort();}
}
Vector &Vector::operator =(Vector &C)
{
if(len==C.len)
{
for(int i=0;i<len;i++)
v[i]=C[i];
return *this;
}
else
{
cout<<"Operator = fail!\n";
abort();
}
}
Vector operator +(Vector &A,Vector &B) // 向量相加
{
int size=A.len ;
double *T=new double[size];
if(size==B.len)
{
for(int i=0;i<size;i++)
T[i]=A[i]+B[i];
return Vector (T,size);
}
else
{
cout<<"Operator + fail!\n";
abort();
}
}
Vector operator -(Vector &A,Vector &B) //向量相减
{
int size=A.len ;
double *T=new double[size];
if(size==B.len)
{ for(int i=0;i<size;i++)
T[i]=A[i]-B[i];
return Vector (T,size);
}
else
{
cout<<"Operator - fail!\n";
abort();
}
}
double operator *(Vector &A,Vector &B) //向量相乘
{
int size=A.len ;
double s=0;
if( size==B.len )
{
for( int i=0; i<size; i++ )
s+=A[i]*B[i];
return s;
}
else
{
cout<<"Operator * fail!\n";
abort();
}
}
ostream & operator <<(ostream &output,Vector &A) //输出
{
int i;
output<<'(';
for( i=0;i<A.len-1;i++)
output<<A[i]<<',';
output<<A[i]<<')';
return output;
}
istream & operator >>(istream &input,Vector &A) //输入
{
for(int i=0;i<A.len;i++)
input>>A[i];
return input;
}
int main()
{
int k1,k2,k3;double t;
cout<<"Input the length of Vector A:\n";
cin>>k1;
Vector A(k1);
cout<<"Input the elements of Vector A:\n";
cin>>A;
cout<<"Input the length of Vector B:\n";
cin>>k2;
Vector B(k2);
cout<<"Input the elements of Vector B:\n";
cin>>B;
cout<<"Input the length of Vector C:\n";
cin>>k3;
Vector C(k3);
cout<<"A="<<A<<endl;
cout<<"B="<<B<<endl;
C=A+B;
cout<<"A+B="<<A<<"+"<<B<<"="<<C<<endl;
C=A-B;
cout<<"A-B="<<A<<"-"<<B<<"="<<C<<endl;
t=A*B;
cout<<"A*B="<<A<<"*"<<B<<"="<<t<<endl;
}
为什么在xcode运行说没有重载=
...全文
73 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcdabing 2014-04-08
  • 打赏
  • 举报
回复
vc运行没啥问题

65,209

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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