![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Ground |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 27.2.2006 Где: Комсомольск Репутация: нет Всего: 1 |
Всем доброго времени суток!
Возник вопрос по поводу компиляции встроенной функции. Создал проект с помощью раздельной компиляции, получились следующие файлы: stack.h stack.cpp main.cpp В stack.h определение класса:
В stack.cpp функция описана как:
В результате при компиляции в файле main.cpp эта функция не видна. Как можно решить эту проблему? |
||||
|
|||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
или перенести из .cpp в .h /.hpp
или избавиться от inline |
|||
|
||||
Ground |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 27.2.2006 Где: Комсомольск Репутация: нет Всего: 1 |
azesmcar, это единственный способ? Не хотелось бы захламлять объявление класса.
|
|||
|
||||
azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
сделать функцию inline - да, избавиться от warning-а - нет (mes предложил альтернативу). Определение inline функции должно быть видимо там, где используется.
иначе встроить ее будет невозможно. Или так, как я написали или перенести
в stack.h Это сообщение отредактировал(а) azesmcar - 10.10.2010, 13:12 |
||||||
|
|||||||
Ground |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 27.2.2006 Где: Комсомольск Репутация: нет Всего: 1 |
azesmcar,
mes, Спасибо за помощь! Вопрос решен. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
А зачем вообще писать инлайн? Неужели вы сомневаетесь, что компилятор сам это заинлайнит (при включенной оптимизации)?!
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
для избежания захламления файла, описывающего класс, можно ввести новый файл stack_inline_functions.h и написать определения inline-функций там, а сам файл включить в основной
тогда и читабельность сохранится, и код функций будет доступен для встраивания Это сообщение отредактировал(а) maxim1000 - 10.10.2010, 15:58 -------------------- qqq |
|||
|
||||
Леопольд |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
-------------------- вопросов больше чем ответов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |