Непонятка со спецификатором inline

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
netkill
Сообщения: 1
Зарегистрирован: 20 ноя 2007, 19:53

Непонятка со спецификатором inline

Сообщение netkill » 20 ноя 2007, 20:09

Уважаемые форумчане, помогите, пожалуйста.
Использую VS C++ 8.1. Столкнулся со следующей проблемой. Когда я объявляю метод некоторого класса в заголовочном файле с данным спецификатором и сразу прописываю тело метода, то все компонуется замечательно. Но если в заголовочном файле только объявить метод с inline спецификатором, а в cpp-файле прописать тело метода, то при его вызове из любого места программы компоновщик выводит ошибку вида error LNK2019: unresolved external symbol ...
В чем может быть дело ?

Спасибо всем!

Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Re: Непонятка со спецификатором inline

Сообщение Romeo » 23 ноя 2007, 10:46

inline метод должен быть имплементирован только в хеадере по той причине, что его имплементация вставляется непосредственно в код на этапе компиляции, а потому должна быть известна во всех файлах, которые используют данный хеадер. Читайте матчасть :)
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

Ответить