ldj150153 2016-06-22 09:05 采纳率: 0%
浏览 2786

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条回答 默认 最新

  • baidu_35393293 2016-06-22 09:13
    关注

    编译正常 但没有结果吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记