Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
11 / 11 / 2
Регистрация: 15.08.2011
Сообщений: 456

Вариативный размер массива в разных экземплярах класса

03.03.2026, 06:59. Показов 6812. Ответов 74
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как задать размер статического массива в каждом экземпляре класса?
C++
1
2
3
4
5
class uart
{
 static const BUF_SIZE = 128;     
 uint8_t buf[BUF_SIZE];    
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.03.2026, 06:59
Ответы с готовыми решениями:

Разное значение переменной класса, в разных экземплярах класса
Вот примерный код: class Test { private: static int countC; static int countD;...

О экземплярах класса
Приветствую. Есть класс Websocket .h/.cpp В websocket.cpp #include "websocket.h" ...

Найти элементы массива А, которые не повторяются и одновременно есть в массиве B в нескольких экземплярах
Всем привет, помогите пожалуйста довести код до ума, что бы выполнялось задание, которое описано в...

74
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,217
Записей в блоге: 2
09.03.2026, 14:33
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Алексей1153 Посмотреть сообщение
А если вдруг затребуется, то std::variant в помощь
Цитата Сообщение от 000d60 Посмотреть сообщение
Вот это новость. Любое решение имеет минусы. Вот только надо рассматривать как плюсы так и минусы, под конкретную задачу.
Это типовая ситуация, лучше знать типовое решение

Создаем базовый абстрактный класс
C++
1
2
3
4
5
6
class uart {
public: 
 virtual size_t size( void ) const = 0;
 virtual uint8_t * data( void ) = 0;
 ...
};
И от него наследуем темплейт
C++
1
2
3
4
5
6
7
8
9
template <size_t N>
class uartN<N> : public uart {
public:
 size_t size( void ) const override { return N; }
 uint8_t * data( void ) override { return m_buf; }
 
// data
 uint8_t m_buf[N];
};
Ну и везде используем базовый класс uart, передавая его по указателю или ссылке. В нем же пишем содержательные методы. Некоторые ограничения все же остаются: нельзя иметь контейнер абстрактных классов (но можно контейнер указателей на них), нельзя подать/вернуть по значению. Но так терпимо, без этого - совсем мрачно
0
фрилансер
 Аватар для Алексей1153
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,403
09.03.2026, 14:36
Igor3D, я бы сюда не тащил RTTI , тогда уж изначально взять std::vector<std::byte> и всё
0
Заблокирован
09.03.2026, 15:01
Цитата Сообщение от Igor3D Посмотреть сообщение
Это типовая ситуация, лучше знать типовое решение
"Земля в иллюминаторе, Земля в иллюминаторе видна..."
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,217
Записей в блоге: 2
09.03.2026, 15:37
Цитата Сообщение от Алексей1153 Посмотреть сообщение
я бы сюда не тащил RTTI , тогда уж изначально взять std::vector<std::byte> и всё
Не вижу такого ограничения (RTTI) в стартовом посте. ТС хотел избежать нормального/динамического выделения памяти на каждый экземпляр. Кстати std::vector - тоже решение тяп-ляп
0
фрилансер
 Аватар для Алексей1153
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,403
09.03.2026, 16:09
Igor3D, как ты собрался класть в массив объекты одного типа без выделения динамической памяти? Зачем тогда это всё ?

А вектор в этом случае идеален

Добавлено через 1 минуту
сильно подозреваю, что у ТС будет парочка глобальных объектов, никакой динамики и складывания в массив там не требуется, всё проще
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,370
09.03.2026, 17:47
Цитата Сообщение от Наталья8 Посмотреть сообщение
классы, шаблоны, применять потерны проектирования
Даа. А в ассемблере видно такую гениальность...?
Вот если открыть и посмотреть...
(Я в парадигмах не специалист. Да и в паттернах тоже.)
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,370
09.03.2026, 17:52

Аа... Понял. Это надо что бы мышление было...
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,370
09.03.2026, 17:53
А тут блин...
0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,217
Записей в блоге: 2
09.03.2026, 18:18
Цитата Сообщение от Алексей1153 Посмотреть сообщение
сильно подозреваю, что у ТС будет парочка глобальных объектов, никакой динамики и складывания в массив там не требуется, всё проще
Вероятно да, но ограничивать обсуждение этим необязательно

Цитата Сообщение от Алексей1153 Посмотреть сообщение
как ты собрался класть в массив объекты одного типа без выделения динамической памяти?
Да запросто, это проблема только для тыкалок И дело здесь не в "статически/динамически", а "как выделять"
0
Заблокирован
09.03.2026, 18:36
Цитата Сообщение от Igor3D Посмотреть сообщение
это проблема только для тыкалок
Проблемы тут только у тебя.
0
фрилансер
 Аватар для Алексей1153
6506 / 5755 / 1134
Регистрация: 11.10.2019
Сообщений: 15,403
09.03.2026, 18:59
Igor3D, если хочется пообсуждать проблемы абстракций, никто не мешает создать ещё одну тему.

А у ТС определённый вопрос
0
10.03.2026, 00:31

Не по теме:

Что тавкое си?
Вот нотбук...
На нём худо бедно стоит седьмая винда...
А десятую на него поставить нельзяя...
Какие то програмисты дрова не написали... Мелочь конечно...
Есть такие процессоры- I7 называеться...


Это как проклятие. Не выше седьмой винды.
(Восьмой... Да всё равно..)

0
10.03.2026, 14:30

Не по теме:

Цитата Сообщение от Наталья8 Посмотреть сообщение
Есть такие процессоры- I7 называеться...
Важнее какое там поколение. Сам Core i7 совершенно нормальный процессор.

0
1980 / 836 / 115
Регистрация: 01.10.2012
Сообщений: 5,217
Записей в блоге: 2
10.03.2026, 16:21
Цитата Сообщение от Алексей1153 Посмотреть сообщение
если хочется пообсуждать проблемы абстракций, никто не мешает создать ещё одну тему.
Да какие там "абстракции", это простой приёмчик
Цитата Сообщение от Алексей1153 Посмотреть сообщение
А у ТС определённый вопрос
Ну как хотите, не надо - так не надо
0
10.03.2026, 23:03

Не по теме:

Как то так вот... У меня энтузиазм отсутствует вообще.
Я торговал старыми компьютерами,
когда одноядерный AMD_шник был гораздо круче интеловского селерона.


С появлением новой операционки,
они отправляют на свалку кучу старого железа.
А он не плохо работал...
Видеокарта отклеилась похоже...
И что то с ним делать смысла уже нету.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.03.2026, 23:03

Найти элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве B
Нужно найти элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только...

Вывести элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В
Задание : вывести на экран элементы, которые есть в массиве А в нескольких экземплярах и...

2-мерные массивы: Вызов конструктора портит данные в других экземплярах
Проблема: обнаружилось, что порой пропадают числа из существующих экземпляров класса. Числа...

Элементы, которые есть в нескольких экземплярах в Массиве А и отсутствуют в Массиве В
Задание : вывести на экран элементы, которые есть в массиве А в нескольких экземплярах и...

Найти элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В
Задание : вывести на экран элементы, которые есть в массиве А в нескольких экземплярах и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru