2013-11-16 3 views
10

Я создал библиотеку с использованием C++, я хочу создать Python Wrapper для этой библиотеки, и я использую boost.python. Проблема в том, что я создал .h и .cpp файлы отдельно и по какой-либо причине , файл .so не может связывать эти .cpp-файлы.Когда использовать файлы .hpp

Поэтому я решил использовать расширение .hpp и включить реализацию в качестве файла заголовка. Это хорошая или плохая практика с точки зрения C++? Я надеюсь загрузить мой проект в Github, поэтому хочу максимизировать оптимальное решение.

P.S. Я думаю, что этот вопрос будет больше принадлежать на programers.stackexchange.com, поэтому, если это так, может кто-то попросить его перенести.

+15

'' .hpp' и .h' одно и то же. – chris

+0

@chris Эй, я думал, что .hpp ссылается на то, что реализация класса будет там? Общий вопрос: это приемлемо? Меня всегда учили иметь файлы .h и .cpp. – Phorce

+0

http://stackoverflow.com/questions/152555/h-or-hpp-for-your-class-definitions – JBentley

ответ

14

Это хорошая идея, если вы смешали C++ и c в своем проекте. Как упоминалось в комментариях .hpp и .h, по сути, одинаковы (для компиляции C++, а не c). Если у вас возникли проблемы с компоновкой проекта, это связано не с расширением вашего файла.

В файлах заголовков вы обычно «прототипируете» определение класса, чтобы все ваши члены класса могли использоваться, а не только те, которые были определены до текущего кода.

Пожалуйста, ознакомьтесь с: *.h or *.hpp for your class definitions

+0

Спасибо, ответив мне .. Если вы посмотрите на этот вопрос: http://stackoverflow.com/questions/20020716/boost-python-exposing-a-class Я связываю все правильно, это просто не работает – Phorce

+0

Не могли бы вы опубликовать код во всех ваших файлах? Не форсированные? –

+0

Здесь, или, собственно вопрос? :) – Phorce

Смежные вопросы