gpt4 book ai didi

c++ - PCL 中 .h、.hpp、.cpp 文件之间的区别

转载 作者:行者123 更新时间:2023-11-28 01:20:00 27 4
gpt4 key购买 nike

我不明白点云库中的 .h、.hpp 和 .cpp 文件之间的区别。 Here是双边过滤器的一个例子,他们说:

  • include/pcl/filters/bilateral.h - will contain all definitions;
  • include/pcl/filters/impl/bilateral.hpp - will contain the templated implementations;
  • src/bilateral.cpp - will contain the explicit template instantiations.

头文件和实现的大致概念我都明白了,但是为什么会有两个头文件呢?模板化实现和显式模板实例化有什么区别?

此刻我正在使用 Kmeans 类并且没有使用 .hpp,相反他们只是在 .cpp file 中实现了它们包括 .h file .为什么?此外,在 kmeans.h 文件中,它们提供了一些公共(public)成员函数的实现,而不仅仅是 setter 和 getter。我找不到这段代码背后的基本原理。

谢谢!

最佳答案

请考虑只有 .h 是头文件,一个包含定义的文件和一个您应该包含的文件。

实现在 hpp 和 cpp 文件中。

  • hpp:包含通用模板 template<class T> ,
  • cpp:包含非模板函数或显式实例化 template<pcl::PointXYZ>

文件 .h 和 .hpp 可以合并到同一个文件中,但将它们分开会更清楚。

关于c++ - PCL 中 .h、.hpp、.cpp 文件之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com