C++ PCL中.h、.hpp、.cpp文件之间的差异

C++ PCL中.h、.hpp、.cpp文件之间的差异,c++,header-files,point-cloud-library,C++,Header Files,Point Cloud Library,我不理解点云库中.h、.hpp和.cpp文件之间的区别。是双边过滤器的一个例子,他们说: include/pcl/filters/doublical.h-将包含所有定义 include/pcl/filters/impl/双边.hpp-将包含模板化实现 src/bitral.cpp-将包含显式模板实例化 我理解头文件和实现的一般概念,但是为什么有两个头文件呢?模板化实现和显式模板实例化之间有什么区别 目前,我正在使用Kmeans类,并且没有使用.hpp,相反,它们只是在a中有实现,并且包括。为

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

  • include/pcl/filters/doublical.h-将包含所有定义
  • include/pcl/filters/impl/双边.hpp-将包含模板化实现
  • src/bitral.cpp-将包含显式模板实例化
我理解头文件和实现的一般概念,但是为什么有两个头文件呢?模板化实现和显式模板实例化之间有什么区别

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


谢谢大家!

考虑只有.h是头文件,包含定义的头文件和应该包含的头文件

实现在hpp和cpp文件中

  • hpp:包含通用模板
    模板
  • cpp:包含非模板函数或显式实例化
    template

.h和.hpp文件都可以合并到同一个文件中,但分开它们更清晰

考虑只有.h是头文件,包含定义的头文件和应该包含的头文件

实现在hpp和cpp文件中

  • hpp:包含通用模板
    模板
  • cpp:包含非模板函数或显式实例化
    template

.h和.hpp文件都可以合并到同一个文件中,但分开它们更清晰

就在您引用的内容之后,他们有一个详细的示例,说明.h.hpp和.cpp文件中的内容。你读了吗?请参考这一点,并尝试更好地解释您不理解的内容。目前,我很想简单地将引用后的文本作为答案发布……模板定义无法进入源代码,但有时将它们与声明分开是一个好主意,我认为这就是要解释的全部内容。请参见此处的副本:您正在查看的类(kmeans)不是模板,因此不需要模板。hpp@formerlyknownas_463035818谢谢你,你最后的评论澄清了我的困惑。很抱歉我的问题有点愚蠢,但我对C++是新的。在你引用了这些东西之后,他们有了一个详细的例子,在h .Hpp和.cp文件中有什么。你读了吗?请参考这一点,并尝试更好地解释您不理解的内容。目前,我很想简单地将引用后的文本作为答案发布……模板定义无法进入源代码,但有时将它们与声明分开是一个好主意,我认为这就是要解释的全部内容。请参见此处的副本:您正在查看的类(kmeans)不是模板,因此不需要模板。hpp@formerlyknownas_463035818谢谢你,你最后的评论澄清了我的困惑。对不起,我的问题有点愚蠢,但我是新的C++。