C++初学者上机的一个实验题,不出结果,大神们指教一下(VC++6.0编译器)

/*依据下面的描述定义并实现一个向量类Vector,并在main函数中定义所需要的对象验证所实现代码的正确性
1) 私有数据成员int dimension; double* data; 表示向量的维数与向量元素存储空间的首地址
2) 无参构造函数,实现把向量所有元素初始化为0
3) 有参构造函数,实现用一个n维数组初始化n维向量
4) 拷贝构造函数
5) 析构函数
6) 输出数据成员函数 void display( );
7) 成员函数int GetDimension();获取向量对象的维数
8) 成员函数 double SetAt(double newdata,int index);实现给向量的第index+1个元素赋值
9) 成员函数 double GetAt(int index);实现读取向量的第index+1个元素的值
10)实现向量加、减、乘运算的成员函数
Vector Add(const Vector &ob2 );
Vector Sub(const Vector &ob2 );
int Mult(const Vector &ob2 );
*/
#include

class Vector
{
private:
int dimension;
double* data;
public:
Vector();
Vector(int a[]);
Vector(const Vector &v);
~Vector();
void Display();
int GetDimension();
double SetAt(double newdata,int index);
double GetAt(int index);
Vector Add(const Vector &ob2 );
Vector Sub(const Vector &ob2 );
int Mult(const Vector &ob2 );
};
Vector::Vector()//无参构造函数,实现把向量所有元素初始化为0
{
dimension=4;
for(int i=0;i<4;i++)
data[i]=0;
}
Vector::Vector(int a[])//有参构造函数,实现用一个n维数组初始化n维向量
{
dimension=sizeof(a);
int i;
for(i=0;i<dimension;i++)
data[i]=a[i];
}
Vector::Vector(const Vector &v)//拷贝构造函数
{
dimension=v.dimension;
for(int i=0;i<v.dimension;i++)
data[i]=v.data[i];
}
Vector::~Vector()//析构函数
{}
void Vector::Display()//输出数据成员函数
{
cout<<'(';
for(int i=0;i<dimension;i++)
cout<<data[i]<<',';
cout<<')';
}
int Vector::GetDimension()//获取向量对象的维数
{
return sizeof(data);
}
double Vector::SetAt(double newdata,int index)//实现给向量的第index+1个元素赋值
{
data[index]=newdata;
return 0;
}
double Vector::GetAt(int index)//实现读取向量的第index+1个元素的值
{
return data[index];
}
Vector Vector::Add(const Vector &ob2)//实现向量加、减、乘运算的成员函数
{
Vector temp;
temp.dimension=dimension;
for(int i;i<dimension;i++)
temp.data[i]=data[i]+ob2.data[i];
return temp;
}
Vector Vector::Sub(const Vector &ob2)
{
Vector temp;
temp.dimension=dimension;
for(int i;i<dimension;i++)
temp.data[i]=data[i]-ob2.data[i];
return temp;
}
int Vector::Mult(const Vector &ob2)
{
int i;
double sum=0;
for(i=0;i<dimension;i++)
sum+=data[i]*ob2.data[i];
return int(sum);
}

int main()
{
Vector v1;
double data=0;
int a[4]={1,2,3,4};
Vector v2(a);
Vector v3(v2);
Vector v4,v5;
cout<<"lv1:"<<v1.GetDimension()<<endl;
v1.Display();
cout<<"lv2:"<<v2.GetDimension()<<endl;
v2.Display();
cout<<"lv3:"<<v3.GetDimension()<<endl;
v3.Display();
v1.SetAt(3,2);
v1.Display();
cout<<v1.GetAt(2)<<endl;
v1.Display();
v4=v1.Add(v2);
cout<<"v1+v2="<<endl;
v4.Display();
v5=v1.Sub(v2);
cout<<"v1-v2="<<endl;
v5.Display();
int sum;
sum=v1.Mult(v2);
cout<<"v1*v2="<<sum;
return 0;
}

4个回答

编译正常 但没有结果吗?

ldj150153
ldj150153 对,直接停止工作了
3 年多之前 回复

额,这要是编译报错还好说,早就不学C++了,电脑上没有软件 直接用眼睛看着代码头都疼了 等等大神出现吧

有时间再帮你看看。。。。。。。。。。。。。

没有给data分配空间

qq_44316823
Abc、Ss 回复路大恒�: ?
10 个月之前 回复
weixin_44295382
路大恒� ?什么意思
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问