Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovOksanaVDв дальнейшим автором используется конструктор копии при сложении, вычитании и умножении матриц В упор не вижу чтобы он там использовался. Ткните пальцем в строчку. А я вижу. То есть, Вы серьёзно?! авторЯ все равно не понимаю, что оставить, а что выкинуть. Если я оставляю конструктор создания квадратной матрицы по ее размеру, то выкинуть конструктор по умолчанию? Не могу понять, нужен ли конструктор копии(Почему я не люблю термин "конструктор по умолчанию": их два. Если Вы не создали конструктора без параметров, его автоматически создаёт компилятор. Такой автоматически созданный конструктор инициализирует все поля класса нулями (сразу вопрос на понимание: сколько полей у класса QMatrix и чему они будут равны при создании объекта таким конструктором?). Этот конструктор вызывается всякий раз при создании объекта класса QMatrix без параметров. Например, здесь: Код: plaintext 1. Если Вы не создали конструктор копирования - его тоже создаст компилятор. Такой автоматический конструктор будет тупо побитово копировать поля "образца". Этот конструктор вызывается в тех случаях, когда компилятору нужно "скопировать" объект класса. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Так вот, конструктор без параметров, в принципе, можно не переопределять вовсе (вопрос на понимание: почему? используйте тот факт, что применение delete[] к нулевому указателю не приводит к ошибке, а просто не делает ничего). Тем более его можно не переопределять, если есть железная гарантия того, что его не вызовет никто посторонний (вопрос на понимание: как добиться этой гарантии средствами языка C++?). А вот конструктор копирования - совсем другой разговор. Ведь один из членов класса QMatrix - указатель на некоторую область памяти. Если копия будет указывать на ту же область, то при разрушении копии вызовется delete[] и оригинал внезапно окажется с недействительным указателем на руках. Простейший способ предотвращения такой ситуации - при копировании выделить для копии свой собственный блок памяти, бережно скопировать в него все данные - и копия станет полностью независима от породившего её образца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 21:51 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
OksanaVDDimitry Sibiryakov, Код: plaintext 1. 2. 3. 4. 5. 6. 7. Это не временный объект, а самый что ни на, есть постоянный. У временного объектов нет имени. оксанаДПервая строчка Да нет, как раз к первая, а последняя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 21:55 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
Operator + должен быть const ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 21:58 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
OksanaVD, Можно взять что-то из топика http://www.sql.ru/forum/actualthread.aspx?tid=975096 и заменить double на int. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 23:10 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
Abstraction, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. http://padabum.com/data/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/%D0%90%D0%BD%D0%B4%D1%80%D0%B8%D0%B0%D0%BD%D0%BE%D0%B2%D0%B0%20%D0%90.%D0%90%2C%20%D0%98%D1%81%D0%BC%D0%B0%D0%B3%D0%B8%D0%BB%D0%BE%D0%B2%20%D0%9B.%D0%9D.%2C%20%D0%9C%D1%83%D1%85%D1%82%D0%B0%D1%80%D0%BE%D0%B2%D0%B0%20%D0%A2.%D0%9C.%20%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE%20%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%20C%2B%2B%20%282010%29.pdf -это книга, на которую я опираюсь. Посмотрите стр. 146. Там последнее предложение перед программой говорит о операторе присваивания. Как я поняла, мне он нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 12:46 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
OksanaVD, И да и нет. То есть, да: оператор присваивания тоже генерируется по умолчанию, если его не определили явно и тоже копирует все члены побитово, что тоже создаёт проблемы с указателями (потому что копии чисел независимы, а копии указателей - совсем даже наоборот). Но вместе с тем, в примере из книги создаётся не "самостоятельный" класс квадратных матриц произвольного размера, а берётся (видимо, созданный раньше) класс произвольных матриц и в нём выделяется подкласс квадратных. Это влечёт излишние для Вашей задачи хвосты, вроде различных переменных для числа строк и числа столбцов, или, скажем, вызова перегруженного метода для базового класса, как в примере на странице 146. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 13:29 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
Abstraction, ага. Что-то начала понимать)))) Т. е. оставляю, присланный ранее, код без изменений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 13:46 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
OksanaVDAbstraction, ага. Что-то начала понимать)))) Т. е. оставляю, присланный ранее, код без изменений?Ну, главный вопрос - что у Вас в коде затесался идентификатор Matrix. Который здесь не нужен, да и пытаться разобраться одновременно с понятием класса, методами, перегрузкой операторов, и ещё с наследованием - по-моему, перебор. "Присланный ранее" - в этом сообщении 13596420 ? Ну, с откомментированными строками в нём вроде разобрались (напоминаю: хорошо бы метод Enter либо переименовать, либо переделать реализацию - сейчас одно другому не соответствует). Что же до некоторых иных строк - гм... Я правильно понимаю, что код, приведённый Вами в первом сообщении темы, компилятор отказывается компилировать и выводит сообщения вида "Ошибка NNNN в строке XX: ******"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 15:23 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
Abstraction, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Про идентификатор Matrix - это где? авторЯ правильно понимаю, что код, приведённый Вами в первом сообщении темы, компилятор отказывается компилировать и выводит сообщения вида "Ошибка NNNN в строке XX: ******"? Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 16:24 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
OksanaVD, Ну, есть мнение, что надо бы привести пример сообщения об ошибке, а равно и строку, к которой это сообщение относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 18:02 |
|
||
|
Реализация класса для работы с матрицами целых чисел
|
|||
|---|---|---|---|
|
#18+
Не знаю, поможет ли (поздновато вмешиваюсь), но кое-что отсюда может помочь: http://thebaga.blogspot.ru/2012/09/c.html http://thebaga.blogspot.ru/2012/10/c-1d.html Правда, для вашей задачи потребуется перенести выделение памяти в конструктор (а не считать, что кто-то добрый сделал за нас эту работу), освобождение - в деструктор. Ну и определить требуемое для работы - конструктор копирования, нужные для реализации мат. действий операторы и вывод на печать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2012, 22:58 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2020598]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
10ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 303ms |

| 0 / 0 |
