|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|||||||||||
Статический класс25.04.2024, 04:02. Показов 11369. Ответов 165
Метки нет (Все метки)
Всем привет
хочу создать полностью статический класс и создаю но возникают ошибки неопределенные reference и пр. хотелось бы сделать так
пишу в итоге так
при компиляции получаю ошибки необъявленные ссылки на var1, var2 .... undefined reference to `SomeClass::var1 вопрос как объявить статический метод класса, а в идеале и вообще весь класс, чтобы не создавать в коде его экземпляр? Добавлено через 4 минуты основная задача вынести этот статический класс в один файл то бишь в модуль не хедер + cpp а сразу все в одном как в шарпах - очень удобно это они придумали в шарпах
0
|
|||||||||||
| 25.04.2024, 04:02 | |
|
Ответы с готовыми решениями:
165
Дан класс, преобразуйте его в статический класс со статическими методами и продемонстрируйте работу с ним Статический класс Статический член указатель на класс |
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|
| 13.05.2024, 17:45 [ТС] | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 13.05.2024, 17:46 | ||
|
Если статическая класса, то для того, чтобы эта запись считалась определением, нужно дописать inline, иначе это только объявление (ну и дальше по тексту начиная с третьей страницы темы).
1
|
||
|
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
|
|
| 13.05.2024, 17:50 [ТС] | |
|
тем не менее
из всей темы - непонятен вывод, кроме того что так принято. и не более того. так написаны компиляторы. и нет других оснований. я вижу это так. не считая inline Добавлено через 2 минуты т.е. есть некое поведение, исторически сложившееся, мне вообще без разницы объявление оно или определение. Факт то, что с помощью одной статики можно определить другую статику и компилятор это хавает, не заставляя сидеть в куче хедеров инклюдить их по очереди.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 13.05.2024, 17:57 | |
|
pup_kin, Вывод из всей темы в том, что нужно читать книги, и задавать конкретные вопросы по прочитанному, а не пытаться выучить язык на форуме
![]() У вас эта тема уже 30 раз правила форума нарушила. Потому что у вас в ней не один вопрос, а целый пласт знаний, сопоставимый с книгой поднимается. Так нельзя. Во-первых вы ничего не усвоите, потому что как бы мы не старались, особенно с таким разрывом по времени как вы тут появляетесь, системно изложить информацию не получится. Во-вторых, для изучения необходимо очистить разум и не делать поспешных выводов, а вы сейчас уже как будто бы решили, что все уже поняли, хотя до этого еще как до Луны.
1
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 13.05.2024, 19:15 | ||
|
Это продуманный и умышленно спроектированный именно так дизайн языка, продиктованный типичным разделением процессов компиляции и линковки. Как вы (надеюсь) знаете, в С++ (как и в большинстве видимо компилируемых языков) "перевод" исходного текста в исполняемый файл выполняется в 2 этапа: - компиляция (из набора .h и .cpp получаем набор .obj) - линковка (из набора .obj и .lib получаем .exe) Такое разделение позволяет ускорять процесс получения исполняемого файла (.exe) в случае кучи .cpp в проекте. Если в проекте 100 .cpp-файлов и изменился только один, то достаточно только его один перекомпилировать, а далее из ста уже имеющихся .obj собрать .exe. Что, конечно, быстрее, чем перекомпилировать все 100 файлов .cpp при повторных компиляциях. И именно для того, чтобы линковщик мог разрешить все ссылки на переменные и функции ("разрешить" здесь не в смысле "разрешить/запретить", а в смысле определить их адреса по именам) и придумана вся эта схема с - объявлением и определением статических переменных и статических членов класса. Так что никаких "исторически сложившихся традиций" тут нет. Сугубо техническая архитектура и техническая необходимость. Которая никуда не исчезла и не исчезнет. Ну разве что её подсластят и сделают немного более удобной при помощи inline в современных версиях. PS Хотя как синтаксически сделано объявление статических переменных в новомодных компилируемых языках я что-то не вникал...
1
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 14.05.2024, 10:17 | ||
|
Добавлено через 1 минуту Наказывайте уже Волгу за чистку всего чего не попадя.... Это жесть просто. Добавлено через 1 минуту
0
|
||
| 14.05.2024, 10:17 | |
|
Не могу вызвать простой статический класс Статический полиморфизм. Базовый класс «прямоугольник» Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже --> создать статический массив строк как статический массив указателей на строки, задание ниже --> Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|