Здравствуйте, pokutan, Вы писали:
P>Ты же вызываешь функцию — и передаешь в нее параметр по значению. P>А надо бы выучить матчасть и передавать по ссылке.
Да, спасибо, помогло. Разобрался, модифицировал. Спасибо большое!
Здравствуйте, pokutan, Вы писали:
P>Ты же вызываешь функцию — и передаешь в нее параметр по значению.
Мне кажется проблема намного глубже. Ведь код не работал не потому что матрица передавалась по значению, а потом что у нее конструктор копирования по умолчанию. Копия исходной матрицы отработав в операторе вывода в поток уничтожалась, вызывался ее деструктор, который убивал массив int **massive;
Соответственно автору нужно реализовать нормальный оператор присваивания и конструктор копирования у класса матрица. Заюзать счетчик ссылок или другую технику для управления владением.
Здравствуйте, wander, Вы писали:
W>Здравствуйте, pokutan, Вы писали:
P>>Ты же вызываешь функцию — и передаешь в нее параметр по значению.
W>Мне кажется проблема намного глубже. Ведь код не работал не потому что матрица передавалась по значению, а потом что у нее конструктор копирования по умолчанию. Копия исходной матрицы отработав в операторе вывода в поток уничтожалась, вызывался ее деструктор, который убивал массив int **massive;
W>Соответственно автору нужно реализовать нормальный оператор присваивания и конструктор копирования у класса матрица. Заюзать счетчик ссылок или другую технику для управления владением.
Или "на всякий случай" сделать приватный конструктор копирования и оператор присваивания — тогда ошибка будет на этапе компиляции.
А еще friend не нужен.