|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||||||||||||
[C/C++]Не могу объявить static функцию в header файле.15.08.2009, 20:05. Показов 7839. Ответов 11
Метки нет (Все метки)
Прочитал про static,и пытаюсь сделать функцию доступной только в пределах одного модуля.Поскольку функции вызывают друг друга(и ещё не помню,по какой хорошей причине),необходимо сначала объявить их в заголовке.
Пишу так в header-файле:
0
|
||||||||||||||||
| 15.08.2009, 20:05 | |
|
Ответы с готовыми решениями:
11
Объявить функцию в заголовочном файле unit1.h в секцию private и public Не могу создать 2 класса header-composition и header-social ListView, как в шаблоне объявить Header? |
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
| 15.08.2009, 20:15 | |
|
насколько я знаю, static могут быть только функции члены.
но никак не обычные функции. для того, чтобы функция не была доступна из других единиц трансляции достаточно определить её в неименованном пространстве имён.
1
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 15.08.2009, 20:35 [ТС] | |
|
Просто я ошибки-то не получаю,предупреждение какое-то не понятное
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
| 15.08.2009, 20:49 | |
|
zim22, static могут быть объявлены не только функции-члены, но и "свободные" функции. В этом случае, видимость static функции ограничена единицей трансляции, внутри которой видимость определяется по обычным правилам.
В C++ действительно, анонимное (неименованное) пространство имен является лучшей альтернативой для достижения цели сокрытия функции, static же рассматривается как устаревшее. Однако, поддерживается для обратной совместимости с C, в котором static - единственная возможность добиться желаемого. "Я думаю так." (с) В.Пух #pragma, если я правильно понял первоначальное сообщение, тебе необходимо обеспечить видимость функции более, чем в одной единице трансляции, так? Или что понимается под "модулем"? В C/C++ нет понятия "модуля", есть понятие "единицы трансляции". Уточни, плз, потом можно будет предложить какое-то решение.....
1
|
|
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
||||||||||||
| 15.08.2009, 20:56 | ||||||||||||
|
у меня варнингов/ошибок нет. билдил на MSVC 2008 и GCC
1
|
||||||||||||
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||
| 15.08.2009, 21:25 [ТС] | ||
|
0
|
||
|
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
| 15.08.2009, 21:32 | |
|
1
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 15.08.2009, 21:48 [ТС] | |
|
Да нет же,эта функция не член класса! она просто возвращает объект.
0
|
|
|
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
|
|
| 15.08.2009, 21:50 | |
|
Извеняюсь. Попробуй перед определением функции написать extern
0
|
|
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
| 15.08.2009, 22:15 [ТС] | |
|
Мне надо наоборот,уменьшить область видимости,а extern её увеличивает.Все функции ведь по умолчанию extern.В-общем,мы ушли от вопроса,меня больше волнует,что за предупреждение я получил,а не сам факт достижения цели.
0
|
|
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|||||||
| 15.08.2009, 22:23 | |||||||
static - для внутреннего
0
|
|||||||
|
|
||||||
| 16.08.2009, 00:27 | ||||||
|
Всё гораздо проще. У тебя есть стандартная ошибка, про которую я пока не говорил тебе и планировал рассказать на этапе разгребания мусора. Ты всегда описание функций вытаскиваешь в *.h файл. Но это излишне. В *.h файл обычно размешают описание того, что будет использоваться за пределами данного модуля (файла *.cpp).
В случае со static функциями, если нужно их описание, то оно делается в файле *.cpp
2
|
||||||
| 16.08.2009, 00:27 | |
|
Помогаю со студенческими работами здесь
12
Как в Button17 объявить делегат на методы класса static string toString (Complex A) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 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 законам Кирхгофа и. . .
|