如何在test.h中创建模板函数,请在test.cpp中使用静态方法

How to make a template function in test.h use a static method inside test.cpp

本文关键字:test cpp 请在 静态方法 函数 建模 创建      更新时间:2023-10-16

当前模板函数在.cpp文件中,但这些模板需要在标头中定义。但是,当我将它们移到标头中时,模板无法访问.cpp文件中的静态方法。我需要做哪些更改才能正常工作?

这只是一个实用程序头和cpp,与类无关。

我只需要继续将所有所需函数的声明放在头文件中(并从其定义中删除static)。如果你把它们放在namespace FunctionName_impl_detail或类似的东西中,你就可以避免名称冲突。如果你在声明附近加上不鼓励直接使用它们的评论,你可能不需要"隐藏"或"保护"它们。但是,如果你想主要防止其他代码使用它们,你可以让它们成为friend作为模板函数的某个类的privatestatic成员。

您应该在头中定义静态方法。

模板类必须完全在头文件中定义,因为编译器基本上为每个模板实例化创建一个新的类,所以它必须在编译时访问完整的方法实现。