|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||||||||||||
Как создать массив экземпляров класса для последующего обращения к его элементам по ссылке?23.01.2019, 07:45. Показов 4598. Ответов 22
Метки нет (Все метки)
Всем здравствуйте.
Вот код моего класса:
0
|
|||||||||||||||||||||
| 23.01.2019, 07:45 | |
|
Ответы с готовыми решениями:
22
Как создать массив экземпляров класса, не проинициализировав его сразу? Как создать массив экземпляров класса String, как создать глобальный массив из экземпляров этого класса? |
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
||||||
| 23.01.2019, 09:44 | ||||||
1
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||||||||||||
| 23.01.2019, 11:15 [ТС] | ||||||||||||||||
|
RomanSedyshev, что-то не получается.
Компиляция проходит, но код использования функции экземпляра класса
0
|
||||||||||||||||
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
|
| 23.01.2019, 11:17 | |
|
Код целиком нужен
0
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.01.2019, 11:27 [ТС] | |
|
RomanSedyshev, Могу прислать в виде маленького проекта-примера на C++Builder6
0
|
|
|
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,161
|
||||||
| 23.01.2019, 11:28 | ||||||
|
jkrnd, у меня получилось:
1
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.01.2019, 11:29 [ТС] | |
|
Вот работающий код:
0
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||||||||||||
| 23.01.2019, 11:55 [ТС] | ||||||||||||||||
|
ReDoX, так заработало. Только почему-то не для всех экземпляров (p[0]->Average какие-то чудеса вытворяет)
Добавлено через 14 минут Странный эффект: В области глобальных переменных:
Добавлено через 6 минут Попутный вопрос. Всё работает на ура если я создаю массив экземпляров класса следующим образом:
p[...].Average(... Значит ли это, что каждый раз вызывая функцию я создаю копию экземпляра класса. Опасения состоят в том, что всё это будет работать применительно к параметрам, считываемым из Com-порта и лишние тормоза тут крайне не желательны.
0
|
||||||||||||||||
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
||||||
| 23.01.2019, 12:02 | ||||||
|
Не парься, работай через Param p[128];
Хотя через указатели должно работать. Чисто ради спортивного интереса попробуй код:
только память очистить не забудь в конце программы
1
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.01.2019, 12:11 [ТС] | |
|
1
|
|
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
|
| 23.01.2019, 12:12 | |
|
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||
| 23.01.2019, 12:21 [ТС] | ||
|
Добавлено через 59 секунд RomanSedyshev, работает но неправильно, см. левый рисунок. На правом рисунке выведено то, что должно получиться. Добавлено через 3 минуты вверху график неусреднённых параметров, внизу - усреднённых Добавлено через 1 минуту похоже что в отводимых ячейках памяти находится какой-то мусор, мешающий работе функции Добавлено через 1 минуту надо попробовать почистить int val[40]; в конструкторе класса Добавлено через 1 минуту если подскажите как это грамотно сделать, буду крайне признателен.
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 23.01.2019, 12:22 | |
|
RomanSedyshev, конструкторы кто вызывать будет?
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.01.2019, 12:25 [ТС] | |
|
0
|
|
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
|||||||
| 23.01.2019, 12:28 | |||||||
Сообщение было отмечено jkrnd как решение
Решение
1
|
|||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||||||||
| 23.01.2019, 12:43 [ТС] | |||||||||||||||||
|
RomanSedyshev, Ура!!! Заработало!. Правда пришлось в класс конструктор добавить:
Итак подитожим:
и всё-таки кто-нибудь ответит стоит ли городить такой огород или проще попробовал закомментировать строку
0
|
|||||||||||||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 23.01.2019, 12:46 | |
|
1
|
|
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
||
| 23.01.2019, 13:13 | ||
|
Конечно же, при закрытии программы Винда все ресурсы высвободит и никакой утечки памяти не будет, но это только после закрытия программы. Если же в ходе программы постоянно выделяется память и не высвобождается, то никто ее и не высвободит, будет утечка. Поэтому надо взять за правило: если выделил память под что-то, то обязательно потом эту память высвободи, даже если это высвобождение будет непосредственно перед самим завершением программы. Это просто дисциплинирует и не дает расслабиться потом, когда более серьезные вещи пишешь.
1
|
||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.01.2019, 13:18 [ТС] | |
|
RomanSedyshev, спасибо
0
|
|
|
51 / 39 / 15
Регистрация: 20.09.2018
Сообщений: 163
|
||
| 23.01.2019, 13:25 | ||
|
И насколько я себе представляю, обращение по точке не создает копию экземпляра класса в памяти. Ты единожды создал все экземпляры в самом начале (Param p[128]) и потом в ходе программы обращаешься к свойствам и методам нужного экземпляра по точке.
1
|
||
| 23.01.2019, 13:25 | |
|
Помогаю со студенческими работами здесь
20
Создать массив экземпляров класса Создать много экземпляров класса и занести их в массив
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|