问题 何时使用.hpp文件


我用C ++创建了一个库,我想为这个库创建一个Python Wrapper,我正在使用它 boost.python  - 问题是我创造了 .h 和 .cpp 文件单独出于某种原因,.so文件无法链接这些.cpp文件。

因此,我决定只使用.hpp扩展名并将实现作为头文件包含在内。在C ++方面这是好事还是坏事?我希望将我的项目上传到Github,以便最大化最佳解决方案。

附:我认为这个问题会更多地属于programmers.stackexchange.com所以如果是的话,有人可以迁移它。


6239
2017-11-16 20:40


起源

.hpp 和 .h 是一回事。 - chris
@chris嘿,我以为.hpp调用了类的实现会在那里?一般的问题是:这可以接受吗?我一直被教导要有.h和.cpp文件 - Phorce
stackoverflow.com/questions/152555/... - JBentley
如果要将实现放在头文件中,请确保使用 inline 在适当的地方避免链接错误(并且要知道哪些类型的函数是自动的 inline 在头文件中) - JBentley


答案:


如果你的项目中混合了c ++和c,那么这是一个好主意。正如评论中提到的.hpp和.h基本相同(用于编译c ++,而不是c)。如果您在链接项目时遇到问题,那不是因为您的文件扩展名。

在头文件中,您通常会“定义”类定义,以便可以使用所有类成员,而不仅仅是在当前代码之前定义的类成员。

请查阅: * .h或* .hpp用于您的类定义


14
2017-11-16 20:47



谢谢回复我..如果你看看这个问题: stackoverflow.com/questions/20020716/... 我把一切都联系起来,它只是不起作用 - Phorce
你能在所有文件中发布代码吗?不是提升者吗? - James McDonnell
在这里,或者,实际的问题? :) - Phorce
把它贴在pastebin等东西上。 - James McDonnell
ideone.com/bcRJfl 你去吧'.h'和'.cpp'在单独的文件中..我还包括Makefile ..任何帮助都会受到赞赏,一直在这工作。 - Phorce