c++ cpp中的模板函数[重复]

ryevplcw  于 2023-03-10  发布在  其他
关注(0)|答案(1)|浏览(169)

此问题在此处已有答案

(13个答案)
六年前关闭了。
我在Visual Studio 2015中编写C++代码。我有两个文件,分别叫superpixel.h和superpixel.cpp。我想在一些函数中使用模板,但我读到不能在cpp文件中定义模板。我不想在头文件中定义模板,因为这只会让我的代码在头文件和cpp文件中的定义变得混乱。
有什么办法可以解决这个问题吗?我必须把我所有的cpp文件都切换到hpp吗?

rxztt3cl

rxztt3cl1#

任何使用模板的东西都需要访问模板,这意味着它必须被包含。我所看到的大多数是把整个定义放到头文件中,尽管你可以把它移到其他文件中并包含它。如果你把你的头文件保持为每个类一个,希望不会那么混乱。
你不需要把所有的cpp文件都转换成hpp文件。那些只是扩展,它们大多数都不重要。尽管你可能想考虑只在你的代码大部分是模板的时候使用header,因为模板代码无论如何都必须在header中,而只有header的项目通常更容易包含在其他项目中,因为你不必担心链接。

相关问题