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

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

03.03.2026, 06:59. Показов 6050. Ответов 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
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
06.03.2026, 20:41
Студворк — интернет-сервис помощи студентам
000d60, претензия одна: "выучить С++" крайне сложно. Но вместо того, чтобы откалывать от него фичи, выводить из стандарта в библиотеки, оттуда в отдельные проекты, которые будут не будут частью языка, а следовательно не будут обязательным требованием для фразы "я знаю С++"... Вместо этого наоборот в язык наваливают новых фич и оставляют обратную совместимость старых. Учебнник по С++ будет всё толстеть и толстеть и так никто его никогда не выучит.
0
Заблокирован
06.03.2026, 22:20
Kuzia domovenok, и?
Разве у кого то стоит цель освоить полностью С++?
Инструмент достаточно знать настолько, насколько это необходимо.
Но в общих чертах нужно ознакомится с каждой возможностью.
В одних задачах легко можно обойтись без(своих) шаблонов и метапрограммировнаия.
В других не нужны даже классы.
В третьих используешь всё из рабочего фреймворка.

Не понимаю в чём проблема.
А про обратную совместимость, так это вообще странно.
У С++ одна из лучших обратных совместимостей.
Про С++ 23/26 не буду говорить, я их не изучаю, так как у меня нет необходимости(да и вообще редко пишу код сейчас), вот и хороший пример.
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
06.03.2026, 23:21
Цитата Сообщение от 000d60 Посмотреть сообщение
так как у меня нет необходимости
По моему, то что наворочали по C++17 включительно, вполне достаточно.
Код писать надо... А то забудешь, потеряешь...
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
07.03.2026, 13:02
000d60, так я и гооврю, да, в С++ к моему ужасу огромная обратная совместимость, что его топит и огромные обновления стандартов, что его топят не меньше и язык разрастается. Это не плюс, а минус языка, его тупо не выучить.
0
фрилансер
 Аватар для Алексей1153
6495 / 5726 / 1133
Регистрация: 11.10.2019
Сообщений: 15,287
07.03.2026, 13:12
Kuzia domovenok, обратная совместимость - это всегда только плюс.

И ничего его не топит, кто такое сказал?

C++ живой, он не проектировался, он развивался согласно потребностям
0
Заблокирован
07.03.2026, 14:00
Цитата Сообщение от Алексей1153 Посмотреть сообщение
И ничего его не топит, кто такое сказал?
Да. Есть масса возможностей которые я ещё не изучал в С++(ознакамливался только).
Например концепты, корутины, метапрограммирование и т.д.
И вот они никак мне не мешают писать классы, шаблоны, применять потерны проектирования и т.д.

Kuzia domovenok,
Ну ладно, будет код где они используются. Что дальше. Берем документацию и читаем.
Это если этот код вдруг нужно править, что по моему мнению, бывает редко.

И вот теперь давайте представим что у нас код на "простом" Си.
Куча макросов, левой кодогенерации, сложная структура, сколько нужно вникать будет во всё это?
И в таком случае, вникать нужно будет в каждую программу с каждым "велосипедом"/системой устройства этой программы.
КАЖДЫЙ раз, Карл.

С++ облегчает создание программ, развитие, рефакторинг и поддержку так как он более высокоуровневый, но и не ограничивает этим уровнем, даруя возможность и низкоуровневого программирования, по необходимости.
А шаблоны дают в мгновение ока отказаться от копипастинга классов со всеми вытекающими ошибками, как при самом копипасте так и при изменении.
Это же здорово. Разве нет?
Жаловаться на возможности ЯП. Что дальше? Жаловаться на быстродействие компьютера?

Добавлено через 3 минуты
p.s.
Kuzia domovenok, про обратную совместимость, я, видимо, написал из-за этого комментария.
Совсем необоснованного.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Это потому что обратная совместимость давно нарушена.
Добавлено через 4 минуты
p.p.s И ещё, про обратную совместимость. Это же очевидно плюс. Что бы наработки, библиотеки, приложения, не нужно было переписывать с нуля. Это огромный плюс.
Многие ЯП просто никому не нужны из-за отсутствия обратной совместимости при его развитии(ЯП).
И это не прихоть, это реалии, человеко/часы, это деньги.
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 18:02
Цитата Сообщение от 000d60 Посмотреть сообщение
Про С++ 23/26 не буду говорить, я их не изучаю, так как у меня нет необходимости
Ты ж их не изучал... Как вас несёт в глубокомысленные анализы....

Добавлено через 1 минуту
Цитата Сообщение от 000d60 Посмотреть сообщение
(да и вообще редко пишу код сейчас)
Цитата Сообщение от 000d60 Посмотреть сообщение
И вот они никак мне не мешают писать классы, шаблоны, применять потерны проектирования и т.д.
// --------------------------------------------------
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,114
Записей в блоге: 2
07.03.2026, 20:28
Цитата Сообщение от 000d60 Посмотреть сообщение
И вот теперь давайте представим что у нас код на "простом" Си.
Куча макросов, левой кодогенерации, сложная структура, сколько нужно вникать будет во всё это?
И в таком случае, вникать нужно будет в каждую программу с каждым "велосипедом"/системой устройства этой программы.
КАЖДЫЙ раз, Карл.
А на плюсах, стало быть, структура простая и ясная, и вникнуть в нее легко? Конечно в любом случае все зависит от конкретного автора/реализации, но, по моим наблюдениям, плюсовый код гораздо больше подвержен злоупотреблениям, просто потому что возможностей больше, в том числе и возможностей говнокодить, Карл.

И, если уж хочется потрепаться, то не лучше ли делать это ближе к теме? Она, кстати, совсем неплохая, особенно на здешнем "безрыбье", хотя ТС и пустил ее на самотек. Ну как, сильно тут помогли плюсы? К месту ли хваленые шаблоны?
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 20:53
Цитата Сообщение от Igor3D Посмотреть сообщение
давайте представим что у нас код на "простом" Си.
А что напишешь на простом си?
Адресок подогнать - WinApi.
Файл поискать тоже.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
WIN32_FIND_DATAW FindFileData;
     HANDLE const hf = FindFirstFileW(PathUtf16, &FindFileData);
     if (hf != INVALID_HANDLE_VALUE) {
         do// Посчитаем количество файлов "clip_n"
         {
             if (!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)// Это не папка
                 && (wcsncmp(&FindFileData.cFileName[0], begin_ln, 7) == 0)
                 )// После первой встреченной с лева скобки точка и расширение совпадающее с присланным... (wchar_t *name)
 if (wcscmp(wcschr(&FindFileData.cFileName[0], ')'), wcschr(name, ')')) == 0) ++cnt;
                     
         } while (NULL != FindNextFileW(hf, &FindFileData));
         FindClose(hf);
         }
Папочку с файлами в корзину, тоже....
C++
1
2
3
4
5
6
SHFILEOPSTRUCTW op;
        ZeroMemory(&op, sizeof(op));
        op.wFunc = FO_DELETE;//  FO_MOVE || FO_DELETE || FO_RENAME
        op.pFrom = From;
        op.pTo = NULL;
        op.fFlags = FOF_NOERRORUI | FOF_NOCONFIRMATION | FOF_ALLOWUNDO;// Тихо и в корзину
Что бы работать какую то работу - фрамеворк нужен...
На формочку выводить результат, картинку - тоже надо фрамеворк.
Или WinApi.
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 20:54
Я вот даже поинтересовался...

0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 20:55
Igor3D,
Ты же не станешь писать игровой движок.
Он типа уже написан...
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 21:03
Название: final_file.gif
Просмотров: 174

Размер: 33.0 Кб
На чём писать?
Winapi конечно....
Я не стану на такую простую хрень фрамеворк подгонять...
Да и паттернов там особых не требуеться... (С++)
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 21:12
Делал на вин_формс в девятнадцатом году.
Винду поменял, прокисло оно всё...
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,226
07.03.2026, 21:18
Это не си... И не с++....

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
case WM_CREATE:
        
        /*Из ресурсов грузим два bmp файла (шкалу и полоску)*/     
    static HBITMAP hBitmap_skin = (HBITMAP)LoadImage(hInstance, MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP,
            0,
            0,
            LR_COPYFROMRESOURCE
        );
    static HBITMAP hBitmap = (HBITMAP)LoadImage(hInstance, MAKEINTRESOURCE(IDB_BITMAP2), IMAGE_BITMAP,
            0,
            0,
            LR_COPYFROMRESOURCE
        );
SetTimer(hwnd, 1, 500, 0);
        break;
    case WM_TIMER:
        InvalidateRect(hwnd, &Inval_rect, TRUE);
        break;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
case WM_PAINT:
        HDC             hdcMem;
        HDC             scin;
        BITMAP          bitmap;
        BITMAP          Bitmap_skin;
        HGDIOBJ         oldBitmap;
        HGDIOBJ         oldBitmap_skin;
        hdc = BeginPaint(hwnd, &ps);
    SetBkMode(hdc, TRANSPARENT);
        hdcMem = CreateCompatibleDC(hdc);
        scin = CreateCompatibleDC(hdc);
    oldBitmap = SelectObject(hdcMem, hBitmap);
        oldBitmap_skin = SelectObject(scin, hBitmap_skin);
        GetObject(hBitmap, sizeof(bitmap), &bitmap);
        GetObject(hBitmap_skin, sizeof(Bitmap_skin), &Bitmap_skin);
    //-------- Выписать две картинки на основную форму    
        BitBlt(hdc, 10, 7, Bitmap_skin.bmWidth, Bitmap_skin.bmHeight, scin, 0, 0, SRCCOPY);
        BitBlt(hdc,3, 110- (short)Cpu_usage(hdc), bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, SRCCOPY);
        //Beep(4000, 10);
        SelectObject(hdcMem, oldBitmap);
        SelectObject(scin, oldBitmap_skin);
        DeleteDC(hdcMem);
        DeleteDC(scin);
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
08.03.2026, 14:49
000d60, так я и говорю, давайте обрубим обратную совместимость.
Сейчас никто не мешает половину кода написать на малознакомых фишках стандарта, половину кучей макросов - их же никто не отменял!
Ваш тейк не решает проблему, а усугубляет.
Были макросы, стали макросы и чудакросы. Был зоопарк библиотек, стал зоопарк библиотек и ещё стандарт , который надо знать не вместо, а вместе с этим зоопарком, который всё ещё живёт и поддерживается.

Давайте обрубим обратную совместимость, обрубим любые как старые, так и новые фишки, которые раздувают стандарт. Сделаем из С++ обратно "народный язык", который easy to learn hard to master. Ключевые слова easy to learn - чтоб не было ни этого "выучи всё что 40 лет добавлялось в язык", ни этого "ой, мне так понравилась эта новая модная библиотека давайте её в стандарт добавим". Чтобы любую задачу можно на нём было б решить 1 способом.... ну это невозможно конечно, но стремиться к этому идеалу надо.
0
Заблокирован
08.03.2026, 19:15
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Давайте обрубим обратную совместимость, обрубим любые как старые, так и новые фишки, которые раздувают стандарт.
Зачем кастрировать?
Сейчас богатый опыт в написании ЯП. Возьми и создай.
Страуструп не ныл на Си. Взял и сделал.

И это не издёвка, а пожелание для тебя. Что бы чего-то добиться или изменить, нужно приложить усилия.
Не можешь/не хочешь, сам что то сделать, напиши/вступи в комиссию по С++. Напиши что тебе ответят.
А лучше просто здраво порассуждать и отсеять несуществующие проблемы у себя.

Желаю успехов.
0
Заблокирован
09.03.2026, 02:01
Цитата Сообщение от Igor3D Посмотреть сообщение
Ну как, сильно тут помогли плюсы? К месту ли хваленые шаблоны?
Так помогли же. ТС выбрал первый шаблонный вариант. Просто разные классы. Видимо для его нужд вполне достаточно.
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,114
Записей в блоге: 2
09.03.2026, 08:28
Цитата Сообщение от 000d60 Посмотреть сообщение
Так помогли же. ТС выбрал первый шаблонный вариант. Просто разные классы. Видимо для его нужд вполне достаточно.
Хорошо если так. Но это решение имеет минусы, напр
В один контейнер разные классы не поместить
C++
1
2
3
4
std::vector<uart> vec;  // нельзя
 
// И даже так нельзя, хотя этого можно добиться наследованием
std::vector<uart *> vec;
Передача uart аргументом вынуждает объявлять вызывающего тоже темплейтом
C++
1
2
3
4
void foo( uart * );  // нельзя
 
template <class T>
void foo( uart<T> * );  // придется так
Если foo - метод какого-то класса, то для него тоже вынуждается темплейт (или класс должен сам разобраться какой uart нужен)
0
фрилансер
 Аватар для Алексей1153
6495 / 5726 / 1133
Регистрация: 11.10.2019
Сообщений: 15,287
09.03.2026, 12:03
Цитата Сообщение от Igor3D Посмотреть сообщение
В один контейнер разные классы не поместить
ему это и не требуется, вроде.

А если вдруг затребуется, то std::variant в помощь
0
Заблокирован
09.03.2026, 13:33
Цитата Сообщение от Igor3D Посмотреть сообщение
Хорошо если так. Но это решение имеет минусы
Вот это новость. Любое решение имеет минусы. Вот только надо рассматривать как плюсы так и минусы, под конкретную задачу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2026, 13:33

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru