| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > static функции |
| Автор: knut 30.3.2007, 10:43 | ||
| Добрый день. Есть a.h с глобальной функц. some_func(); и имеется b.cpp в котором надо вызвать some_func();
но проблема. компилятор ругается. //error static function bool some_func() declared but not defined |
| Автор: Partizan 30.3.2007, 10:47 |
| файл с реализацией функции надо включить в проект, чтобы он тоже прилинковывался при сборке.. |
| Автор: knut 30.3.2007, 11:00 |
| Partizan, т.е a.cpp в b.cpp ? |
| Автор: aldari 30.3.2007, 11:04 |
| Эксперементировать тяжело? Зачем всё время спрашивать? Попробуй, потом пиши. |
| Автор: knut 30.3.2007, 11:08 |
| Fazil6, если я тебя правельно понял то если у меня есть статическая глобалная функциия то я не могу его вызвать его из функции каторая реализованна в другом файле?(т.е не там где статич.функция) |
| Автор: Fazil6 30.3.2007, 11:20 | ||
да, эту функцию можно вызвать только в той еденице компилляции, в которой она объявлена |
| Автор: Xenon 30.3.2007, 12:06 |
| В том-то и заключается ее статичность - область видимости ограничена одним модулем (файлом). |
| Автор: Earnest 30.3.2007, 19:21 |
нонсенс. Либо статическая, либо глобальная. Грубо говоря, помещая static bool some_func() в h-файл, ты обещаешь, что эта функция будет реализована в каждом файле, куда этот h включается. И это будут разные функции (в смысле адреса). Т.е. конструкция абсолютно бессмысленная. Если оставлять вс как есть, просто убери слово static из определения функции, и будет она глобальная. |