B
buts
Есть класс
Конструктор по умолчанию
Деструктор
Конструктор копирования
Main()
Выдает ошибку памяти, что то где то с адресами.
не правильно написаны конструкторы\деструктор?
Куда копать? От передаемых значений(т.е размеров матриц) не зависит
Или вернуть можно только в новый объект? Пренудительно вызвать деструктор? (Как?)
Код:
class Ma
{
int **m;
int x,y;
public:
Ma(int=5,int=5);
....
};
Код:
Ma::Ma(int a,int b)
{
x=a;
y=b;
m=new int*[x];
for(int i=0;i<x;i++) m[i]=new int[y];
}
Код:
Ma::~Ma()
{
for(int i=0;i<x;i++) delete []m[i];
delete[] m;
}
Код:
Ma::Ma(Ma &F)
{
x=F.x;
y=F.y;
m=new int*[x];
for(int i=0;i<x;i++) m[i]=new int[y];
for(int i=0;i<x;i++) for (int t=0;t<y;t++) m[i][t]=F.m[i][t];
}
Код:
{
Ma x;
Ma w=x.back(4,4); //работает, т.к. объект создаеться с нуля, по ходу выполнения;
Ma y,t(1,1);
y=x.back; //не работает
t=x.back; //не работает
}
не правильно написаны конструкторы\деструктор?
Куда копать? От передаемых значений(т.е размеров матриц) не зависит
Или вернуть можно только в новый объект? Пренудительно вызвать деструктор? (Как?)