Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Все лабораторные работы / Всё стасовское новое / prog / laba8V
.h#include <math.h>
class CVector
{
public:
CVector(int VectorSize);
CVector( const CVector & );
~CVector(void);
int getSize() const;
double getNorma() const;
double & operator[](int subscript);
const double &operator[](int subscript) const;
const CVector & operator=(const CVector &right);
bool operator==( const CVector &right) const;
bool operator!=( const CVector &right) const;
CVector operator*(const double k) const;
double operator*(const CVector &right) const;
CVector operator+(const double &alfaPoint) const;
CVector operator-(const double alfaPoint) const;
CVector operator+(const CVector &right) const;
CVector operator-(const CVector &right) const;
CVector operator-() const;
private:
double vectorPointer[2];
int size;
};
CVector::CVector(int VectorSize)
{
size = VectorSize ;
for( int i = 0; i < size; i++ )
vectorPointer[i]=0;
}
CVector::CVector(const CVector &init) : size(init.size)
{
for( int i = 0; i < size; i++ )
vectorPointer[i]=init.vectorPointer[i];
}
CVector::~CVector(void)
{
}
int CVector::getSize() const
{
return size;
}
double CVector::getNorma() const
{
double result=0;
for (int i=0; i<size; i++)
result+=vectorPointer[i]*vectorPointer[i];
return sqrt(result);
}
double & CVector::operator[](int subscript)
{
return vectorPointer[subscript];
}
const double & CVector::operator[](int subscript) const
{
return vectorPointer[subscript];
}
const CVector & CVector::operator=(const CVector &right)
{
if(&right!=this)
{
if( size!= right.size)
{
size=right.size;
}
for ( int i = 0; i < size; i++)
vectorPointer[i] = right.vectorPointer[i];
}
return *this;
}
bool CVector::operator==( const CVector &right) const
{
if( size != right.size )
return false;
for (int i = 0; i < size; i++)
if ( vectorPointer[i] != right.vectorPointer[i])
return false;
return true;
}
bool CVector::operator!=( const CVector &right) const
{
return ! (*this == right );
}
CVector CVector::operator*(const double k) const
{
CVector result(size);
for (int i=0; i<size;i++)
result[i]=k*vectorPointer[i];
return result;
}
CVector CVector::operator+(const double &alfaPoint) const
{
CVector result(size);
for (int i=0; i<size;i++)
result[i]=vectorPointer[i]+alfaPoint;
return result;
}
CVector CVector::operator-(const double alfaPoint) const
{
return *this+(-alfaPoint);
}
CVector CVector::operator+(const CVector &right) const
{
CVector result(size);
for (int i=0; i<size;i++)
result[i]=vectorPointer[i] + right[i];
return result;
}
double CVector::operator*(const CVector &right) const
{
double result=0;
for (int i=0; i<size;i++)
result+=vectorPointer[i]*right[i];
return result;
}
CVector CVector::operator-(const CVector &right) const
{
CVector result(size);
for (int i=0; i<size;i++)
result[i]=vectorPointer[i] - right[i];
return result;
}
CVector CVector::operator-() const
{
CVector result(size);
for (int i=0; i<size;i++)
result[i]=-vectorPointer[i];
return result;
}