设计并实现一个可由用户在生成对象时给定大小的整数向量类IntVect。
下面是一个使用IntVect类的程序示例及输出结果。
void main ( )
{
IntVect v1(4); // 生成一个含四个分量的向量,即v1=(0, 0, 0, 0)
v1[0] = 1;
v1[1] = 2;
v1[2] = 3;
v1[3] = 4; // 此时v1=(1, 2, 3, 4)
IntVect v2 = v1; // 此时v2=(1, 2, 3, 4)
IntVect v3 = v1 + v2; // 此时v3=(1, 2, 3, 4)
IntVect v4;
v4 = v1 - v2; // 此时v4=(0, 0, 0, 0)
cout << v3 << endl << v4 << endl;
}
上面程序的输出结果应该为:
(2, 4, 6, 8)
(0, 0, 0, 0)
这是我写的,,改了半天还是错误的,,那个高手发个正确的给我,,让我学习一下
#include "stdafx.h"
class IntVect
{ public:
Intvect(int );
IntVect & operator =(const InVect &);
IntVect & operator +(const InVect &);
private:
int v[4];
};
Invect::Intvect(int num)
{ intvect = new Intvect;
intvect.v[0]=intvect.v[1]=intvect.v[2]=intvect.v[3]=0;
}
IntVect & IntVect:: operator=(const IntVect & rhs)
{ intvect = new Intvect;
*v[0]=rhs.v[0];
*v[1]=rhs.v[1];
*v[2]=rhs.v[2];
*v[3]=rhs.v[3];
return intvect;
}
IntVect & IntVect:: operator+(const IntVect & rhs)
{ intvect = new Intvect;
*v[0]=rhs.v[0]+*v[0];
*v[1]=rhs.v[1]+*v[1];
*v[2]=rhs.v[2]+*v[2];
*v[2]=rhs.v[3]+*v[2];
return intvect;
}
void main ( )
{
IntVect v1(4); // 生成一个含四个分量的向量,即v1=(0, 0, 0, 0)
v1[0] = 1;
v1[1] = 2;
v1[2] = 3;
v1[3] = 4; // 此时v1=(1, 2, 3, 4)
IntVect v2 = v1; // 此时v2=(1, 2, 3, 4)
IntVect v3 = v1 + v2; // 此时v3=(1, 2, 3, 4)
IntVect v4;
v4 = v1 - v2; // 此时v4=(0, 0, 0, 0)
cout << v3 << endl << v4 << endl;
}