0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 26
|
||||||
1 | ||||||
Класс, конструктор, деструктор и прочее26.04.2018, 17:01. Показов 2136. Ответов 8
Добрый день.
Есть задание: Написать программу работы с матрицами (матрица представляет собой двумерный массив). Матрица является объектом класса. Память под матрицу должна выделяться динамически (с помощью new). Должны быть определены деструктор и следующие конструкторы: · Конструктор по умолчанию создает матрицу с размером по умолчанию; · Копирующий конструктор. Необходимо перегрузить операции вычитания и смены знака (-) (операции должны выполняться поэлементно с элементами каждой матрицы) и операцию присваивания. Выполнил задание вот таким образом:
1. Не совсем понял задание и даже не понимаю, выполнил ли я требования или нет. 2. Запутался в операторах. Читал много про операторы, но в голове логики нет. Не совсем понимаю где нужен const, а где нет. Запутался с указателями & - тоже не знаю где надо, а где нет. 3. Проблемы с оператором смены знака. Допустим я пишу в код M3=-M2, он мне меняет М2 и присваивает к М3, и обе матрицы с отрицательным знаком. Но мне нужно чтобы M2 не изменялся на постоянно а только временно, чтобы дать новые значения M3.
0
|
26.04.2018, 17:01 | |
Ответы с готовыми решениями:
8
Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор Класс: конструктор и деструктор Добавить в класс конструктор и деструктор Класс, конструктор, деструктор, дружественные функции |
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,621
|
|
26.04.2018, 18:26 | 2 |
Вариант с friend убери. Вычитание и смена знака должны возвращать новый объект, а не this - как в варианте с friend.
1
|
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 26
|
|
26.04.2018, 20:04 [ТС] | 3 |
Ошибка без friend "слишком много параметров для этой функции оператора". В общем бинарные (без friend) у меня выдают ошибку, а унарные нет.
0
|
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,621
|
|
26.04.2018, 20:17 | 4 |
Имеется в виду, что надо убрать всю функцию, а не только слово friend. Остальное исправил?
1
|
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 26
|
||||||
27.04.2018, 09:53 [ТС] | 5 | |||||
Если ее всю убрать, у меня остаётся унарная операция вычитания. Она не совсем правильно считает. Щас займусь исправлением. Если в вычитание понимаю как справиться, то смена знака не совсем доходит((
В общем щас займусь и скину что получилось, спасибо за помощь Добавлено через 13 часов 12 минут Добрый день, помогло.
0
|
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,621
|
|
27.04.2018, 10:04 | 6 |
Ну результат-то верный?
1
|
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 26
|
|
28.04.2018, 09:29 [ТС] | 7 |
Результат да, вроде получил то что хотел))
А с деструктором что нибудь придумаю
0
|
7785 / 6553 / 2983
Регистрация: 14.04.2014
Сообщений: 28,621
|
|
28.04.2018, 09:46 | 8 |
Что значит слишком часто? Там же временные объекты создаются. Память корректно освобождается?
0
|
0 / 0 / 0
Регистрация: 25.12.2017
Сообщений: 26
|
|
28.04.2018, 11:20 [ТС] | 9 |
Прошу прощения, ошибка в моей невнимательности. Все работает! Не разделил вывод, и не совсем правильно отобразилось в консоли, из за этого я подумал что срабатывает деструктор 2 раза.
0
|
28.04.2018, 11:20 | |
28.04.2018, 11:20 | |
Помогаю со студенческими работами здесь
9
Добавить в класс хотя бы один конструктор и деструктор Создать любой класс. Реализовать конструктор, деструктор, продемонстрировать работу Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным. Класс "Матрица": конструктор, деструктор и перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |