我试图重载运算符=。我可以编译它但是每当我运行程序时,如果我只有A1 = A2就可以了,但是当我的A1 = A2 = A3时,我得到下一条失败消息:
"此应用程序已请求Runtime以不寻常的方式终止它。 有关更多信息,请联系应用程序的支持团队。 在抛出' std :: bad_array_new_length'的实例后终止调用 what():std :: bad_array_new_length"。
我正在附加我的.cpp文件。 我是新来的,所以如果还有其他任何你想要我发送的内容,请告诉我。
我的.cpp文件(包括复制构造函数):
#include <cmath>
#include "Array.h"
myArray::myArray()
{
size = 0;
data = new double[size];
for (int i = 0; i < size; i++)
{
data[i] = i;
}
}
myArray::myArray(const myArray& orig) {
setSize(orig.getSize());
data = new double [getSize()];
for (int i = 0; i < getSize(); i++) {
setData(i, orig.getData(i));
}
}
myArray myArray::operator=(const myArray& rhs)
{
delete [] data;
setSize(rhs.getSize());
data = new double [getSize()];
for (int i = 0; i < size; i++)
{
setData(i,rhs.getData(i));
}
}