|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||||||
конструкторы14.09.2010, 19:29. Показов 3505. Ответов 36
Метки нет (Все метки)
Есть 2 проблемы:
1) Сказали сделать 2 конструктора: один по умолчанию, а другой-с параметрами. Какие должны быть параметры в моем конструкторе?(я так понимаю нужно как-то избавиться от private:i,j,n,m?) 2) Почему при данном выделении памяти( через malloc нужно по условию) "ложится" метод print(); Может для этого нужен конструктор копирования?
0
|
||||||
| 14.09.2010, 19:29 | |
|
Ответы с готовыми решениями:
36
Конструкторы
Конструкторы |
|
Каратель
|
||
| 14.09.2010, 19:56 | ||
Добавлено через 3 минуты вот пример
0
|
||
|
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
|
|||||||
| 14.09.2010, 23:03 | |||||||
0
|
|||||||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||||||
| 14.09.2010, 23:19 [ТС] | ||||||
|
Не, я имею в виду конкретный свой случай.
Т.е. я создаю конструктор по умолчанию(простой), а потом с параметром. Но при запуске, видя один объект(matrix object), он запустит консторуктор по умолчанию(простой), а как же сделать так, чтобы полсе запуска простого, запустился конструктор с параметром,который вводит матрицу???
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 14.09.2010, 23:21 | ||||||
|
zhenya.ya,
0
|
||||||
|
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
|
|||||||||||
| 14.09.2010, 23:22 | |||||||||||
|
вот пример использования перегруженного конструктора:
0
|
|||||||||||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 15.09.2010, 00:16 [ТС] | |
|
спс за примеры, но теперь ругается на метод print(), а точнее на строку: cout<<matrica[i][j]<<' ';
Что не так? И кстати, я не понял как сработает конструктор копирования ( непонятно как можно прировнять оъекты, если мой копирующий конструктор написан верно,а я там выделяю память для матрицы, то какие объекты мне нужно приравнять?)
0
|
|
|
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
|
|
| 15.09.2010, 01:41 | |
|
добавьте в конструктор копирования проверку, если есть матрица matrica то её нужно удалить и создать новую, вообще при копировании объектов копируются все поля класса.
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|||||||
| 15.09.2010, 09:50 | |||||||
0
|
|||||||
|
3 / 3 / 0
Регистрация: 06.07.2010
Сообщений: 18
|
||
| 15.09.2010, 12:28 | ||
|
Проверка нужна при перегрузке operator=...
0
|
||
|
Шаровик затейник
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
|
|
| 15.09.2010, 12:53 | |
|
Если вы используете в классе динамические массивы или работаете с динамической памятью и перегружаете оператор = то обязательно нужен конструктор копирование в котором реализована проверка есть ли такой динамический массив или нет. Представьте что вы приравняли 2 объекта друг другу и у обоих объектов динамический массив с одним и тем же адресом, что будет когда начнет работать деструктор как вы думаете?
0
|
|
|
3 / 3 / 0
Регистрация: 06.07.2010
Сообщений: 18
|
|
| 15.09.2010, 13:41 | |
|
В случае с оператором = безусловно надо делать проверку, но вот в случае с конструктором копирования я не пойму зачем...
Ввиду того, что это конструктор, ранее объект, который инициализируется другим объектом, не существовал, следовательно члены класса не имели никаких значений и проверка всегда будет отрицательной.
0
|
|
|
|
|
| 15.09.2010, 14:08 | |
|
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 15.09.2010, 20:49 [ТС] | |
|
Мне ничего не нужно перегружать.
Почему ругается на строку cout<<matrica[i][j]<<' '; в методе-выводе(print() ? И как заставить мой конструктор копирования работать?
0
|
|
|
|
|
| 15.09.2010, 20:55 | |
|
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||||||
| 15.09.2010, 21:03 [ТС] | ||||||
|
Все, исправил инициализацию. Но теперь ,по завершению работы ,кидает ошибку. В чем проблема?
0
|
||||||
|
|
||
| 15.09.2010, 21:20 | ||
|
Кроме того, при копировании обектов вызывается matrix& operator =, а не конструктор копирования.
0
|
||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||
| 15.09.2010, 21:57 [ТС] | ||
|
Как-то я не могу найти этот случай.
0
|
||
|
|
|||||||||||||
| 15.09.2010, 22:03 | |||||||||||||
|
То есть,
Во время удаления этого объекта вызывается free для указателя, который указывает неизвестно куда.
0
|
|||||||||||||
| 15.09.2010, 22:03 | |
|
Помогаю со студенческими работами здесь
20
Конструкторы конструкторы Конструкторы С++ Конструкторы Конструкторы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|