哪位大哥看看这个C++程序错在哪了

2025-06-25 11:20:33
推荐回答(3个)
回答1:

#include
#include
using namespace std;

class Vector;
ostream & operator << ( ostream & output,Vector&);
istream & operator >> ( istream & input,Vector&);
class Vector
{
public:
int L;
Vector(int w)
{
vector=new int[w];
L=w;
}
int *vector;
Vector operator +(Vector b)
{
Vector c(b.L);
for (int i=0;i {
c.vector[i]=vector[i]+b.vector[i];
}
return c;
}
Vector operator -(Vector b)
{
Vector c(b.L);
for (int i=0;i {
b.vector[i]=vector[i]-b.vector[i];
}
return c;
}
int operator *(Vector b)
{
int temp=0;
for (int i=0;i {
temp+=(vector[i]*b.vector[i]);
}
return temp;
}

};
ostream & operator<<(ostream & output,Vector &A)
{
output<<"(";
for (int i=0;i {
cout< cout<<",";
}
output<<")"< return output;
}
istream & operator>> (istream & input,Vector &A)
{

for (int i=0;i {
input>>A.vector[i];
}
return input;
}
void main()
{
cout<<"?入?度:";
int n;
cin>>n;
Vector a(n);
Vector b(n);
Vector c(n);
Vector d(n);
cout<<"?入向量1,以空格?分";
cin>>a;
cout<<"?入向量2,以空格?分";
cin>>b;
int cheng=a*b;
c=a+b;
c=a-b;
cout<<"加";
cout< cout<<"?";
cout< cout<<"乘";
cout<}

回答2:

定义不统一, istream &operator >> (istream & input,Vector &A) 声明的时候后一个参数没写 &

回答3:

friend ostream &operator << (ostream & output,Vector);
friend istream &operator >> (istream & input,Vector);
声明和实现不一样.修改为:
friend ostream &operator << (ostream & output,Vector&);
friend istream &operator >> (istream & input,Vector&);