![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
knut |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
Добрый день.
Есть a.h с глобальной функц. some_func(); и имеется b.cpp в котором надо вызвать some_func();
но проблема. компилятор ругается. //error static function bool some_func() declared but not defined --------------------
|
||||
|
|||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 4 Всего: 67 |
файл с реализацией функции надо включить в проект, чтобы он тоже прилинковывался при сборке..
Это сообщение отредактировал(а) Partizan - 30.3.2007, 10:49 -------------------- СУВ, Partizan. |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
Что не понятно? Компиллятор не видит реализации твоей some_func(). Не вижу проблемы. Добавлено через 9 минут и 32 секунды а, ты в разных еденицах компилляции определяшь и используешь... эту функцию можно только в a.cpp у тебя вызывать, потому что она static |
|||
|
||||
knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
Partizan, т.е a.cpp в b.cpp ?
--------------------
|
|||
|
||||
aldari |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 5.3.2007 Репутация: нет Всего: нет |
Эксперементировать тяжело? Зачем всё время спрашивать? Попробуй, потом пиши.
|
|||
|
||||
knut |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 588 Регистрация: 7.2.2006 Репутация: нет Всего: нет |
Fazil6,
если я тебя правельно понял то если у меня есть статическая глобалная функциия то я не могу его вызвать его из функции каторая реализованна в другом файле?(т.е не там где статич.функция) --------------------
|
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
да, эту функцию можно вызвать только в той еденице компилляции, в которой она объявлена |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
В том-то и заключается ее статичность - область видимости ограничена одним модулем (файлом).
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
нонсенс. Либо статическая, либо глобальная. Грубо говоря, помещая static bool some_func() в h-файл, ты обещаешь, что эта функция будет реализована в каждом файле, куда этот h включается. И это будут разные функции (в смысле адреса). Т.е. конструкция абсолютно бессмысленная. Если оставлять вс как есть, просто убери слово static из определения функции, и будет она глобальная. -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |