【问题标题】:When to use .hpp files何时使用 .hpp 文件
【发布时间】:2013-11-16 20:40:12
【问题描述】:

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

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

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

【问题讨论】:

  • .hpp.h 是同一个东西。
  • @chris 嘿,我认为 .hpp 调用的类的实现会在那里?一般的问题是:这可以接受吗?我一直被教导要有一个 .h 和 .cpp 文件
  • 如果你要将实现放在头文件中,请确保在适当的地方使用inline以避免链接错误(并注意哪些类型的函数会自动在头文件中inline文件)

标签: c++ header-files


【解决方案1】:

如果您在项目中混合使用了 c++ 和 c,这是一个好主意。如 cmets 中所述,.hpp 和 .h 本质上是相同的(用于编译 c++,而不是 c)。如果您在链接项目时遇到问题,这不是因为您的文件扩展名。

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

请查看: *.h or *.hpp for your class definitions

【讨论】:

  • 感谢回复我。如果您查看此问题:stackoverflow.com/questions/20020716/… 我将所有内容都正确链接,但它不起作用
  • 你能把代码贴在你所有的文件里吗?不是助推器?
  • 在这里,或者,真正的问题? :)
  • 粘贴在 pastebin 或其他东西上。
  • ideone.com/bcRJfl 你去。 '.h' 和 '.cpp' 位于不同的文件中。我还包含了 Makefile 。任何帮助都将不胜感激,整晚都在工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
  • 2021-06-26
  • 1970-01-01
相关资源
最近更新 更多