在重载赋值运算符时老是出错:Invalid allocation size~~
调试的时候发现引用值使用时就不是原值了
不知道哪里出错了T_T
本人小白~~求大神请教
刚用论坛不知道怎么加附件[捂脸]~~粘一个代码先
[code=c][/#ifndef NUMERICARRAY_CPP
#define NUMERICARRAY_CPP
#include "NumericArray.h"
#include "Array.h"
template <typename T>
NumericArray<T>::NumericArray():Array()
{
}
template <typename T>
NumericArray<T>::NumericArray(int newsize):Array(newsize)
{
}
template <typename T>
NumericArray<T>::NumericArray(const NumericArray<T>& arr):Array(arr)
{
}
template <typename T>
NumericArray<T>::~NumericArray()
{
}
template <typename T>
NumericArray<T>& NumericArray<T>::operator = (const NumericArray<T>& nuarr)// the assignment operator
{
if(this == &nuarr)//check if the source object is not the same as the this object
{
return *this;
}
Array::operator = (nuarr);
return *this;
}
template <typename T>
NumericArray<T>& NumericArray<T>::operator + (const NumericArray<T>& arr) const
{
NumericArray<T> result((*this).Size());
if ((*this).Size() == arr.Size())
{
for (int i=0;i<arr.Size();i++)
{
result.SetElement(i, (*this).GetElement(i)+ arr.GetElement(i));
}
}
else throw -1;
return result;
}
template <typename T>
NumericArray<T>& NumericArray<T>::operator * (const double factor) const
{
NumericArray<T> result((*this).Size());
int i;
for (i=0;i<(*this).Size();i++)
{
result.SetElement(i, (*this).GetElement(i) * factor);
}
return result;
}
template <typename T>
double NumericArray<T>::DotProduct(const NumericArray<T>& arr1)
{
double product=0;
if ((*this).Size() == arr1.Size())
{
int i;
for (i=0;i<arr1.Size();i++)
{
product += (*this).GetElement(i)*arr1.GetElement(i);
}
}
else throw -1;
return product;
}
#endifcode]