|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|||||||||||
Массив в заголовке класса08.10.2022, 13:45. Показов 1894. Ответов 21
Метки нет (Все метки)
Добрый день. Хотел я тут недавно создать массив в заголовочном файле класса таким образом:
0
|
|||||||||||
| 08.10.2022, 13:45 | |
|
Ответы с готовыми решениями:
21
Зачем нужно опережающее объявление класса в заголовке? Unresolved external и использование класса находящегося в заголовке После Протокол, используемое в заголовке IPv4 отсутствует в фиксированном заголовке IPv6. Почему ? |
|
2393 / 1914 / 763
Регистрация: 27.07.2012
Сообщений: 5,558
|
||
| 08.10.2022, 13:51 | ||
|
0
|
||
|
фрилансер
6447 / 5643 / 1128
Регистрация: 11.10.2019
Сообщений: 15,016
|
|||||||
| 08.10.2022, 15:23 | |||||||
1
|
|||||||
|
Модератор
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
|
||||||
| 08.10.2022, 15:38 | ||||||
|
А не лучше ли использовать шаблонный параметр
0
|
||||||
|
Заблокирован
|
|||
| 08.10.2022, 15:47 | |||
|
А отдельно объявить размер массива вполне разумно, для его дальнейшего использования в коде.
0
|
|||
|
фрилансер
6447 / 5643 / 1128
Регистрация: 11.10.2019
Сообщений: 15,016
|
|
| 08.10.2022, 17:01 | |
|
0
|
|
|
Заблокирован
|
|||||||||||||
| 08.10.2022, 18:26 | |||||||||||||
Добавлено через 22 секунды Хотя, да, дело вкуса.
0
|
|||||||||||||
|
фрилансер
6447 / 5643 / 1128
Регистрация: 11.10.2019
Сообщений: 15,016
|
||
| 08.10.2022, 18:40 | ||
![]() Лучше, конечно, использовать std::array
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 08.10.2022, 18:45 | |
|
0
|
|
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
|
|||
| 08.10.2022, 21:27 | |||
|
При чем здесь "заговлочный файл" - не ясно. size для указания размера массива, потому что значение поля size не известно на стадии компиляции.
0
|
|||
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|||||||||||||||||||||||
| 09.10.2022, 22:04 [ТС] | |||||||||||||||||||||||
MyClass.h
0
|
|||||||||||||||||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 09.10.2022, 22:13 | |
|
0
|
|
|
Заблокирован
|
|||||||
| 09.10.2022, 22:16 | |||||||
|
size будет известен только после создания объекта класса MyClass. А это рантайм. Пример :
спецификатор cons не гарантирует что переменная будет времени компилетайм. Она гарантирует лишь неизменность переменной, после ее инициализации.
0
|
|||||||
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
|
|||||||
| 09.10.2022, 22:22 | |||||||
= 10 - это не более чем инициализатор по умолчанию.Например
0
|
|||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||
| 09.10.2022, 22:38 | ||||||
Сообщение было отмечено Ballantrae как решение
Решение
Ballantrae, в дополнение к предыдущим ответам, определить константу времени компиляции в class scope можно так:
0
|
||||||
| 10.10.2022, 07:59 | |
|
0
|
|
|
Вездепух
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
|
||
| 10.10.2022, 08:15 | ||
|
При этом при соблюдении некоторых заранее оговоренных условий может получиться так, что значение константного объекта всегда будет гарантированно одним и тем же (и, скорее всего, назначается сразу в начале выполнения программы или даже до него). Про такие объекты действительно можно говорить, что их значение "зафиксировано на этапе написания кода". Вот такие и только такие объекты в С++ могут выступать в роли констант времени компиляции. В данном случае рассматриваемое поле size - нестатический член класса - этим требованиям не удовлетворяет.
0
|
||
|
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
|
||||||
| 10.10.2022, 08:40 | ||||||
|
А еще есть такая страшная вещь:
0
|
||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 10.10.2022, 08:57 | |
|
ram876, вы неправильно ее применяете. Снимать константность с константного объекта для последующей записи не допускается. Снимать константность для записи можно у константных ссылок изначально привязанных к неконстантному объекту, например. Либо с изначально константных объектов, но с гарантией, что записи туда не будет.
1
|
|
|
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
|
|
| 10.10.2022, 09:06 | |
|
DrOffset, я лучше буду обходить стороной эту возможность. Видится мне, что есть большая вероятность допустить ошибку (особенно с моей невнимательностью).
0
|
|
| 10.10.2022, 09:06 | |
|
Помогаю со студенческими работами здесь
20
В заголовке функции описать параметр - двумерный массив строк Массив объектов одного класса как поле другого класса Как переместить из стека одного класса в массив другого класса? Как правильно создать массив объектов текущего класса в методе данного класса?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|