C++模板类函数的定义与声明怎么写在两个文件上
时间: 2024-10-27 16:06:37 浏览: 25
在C++中,如果你想要将模板类函数的定义部分放在一个源文件(.cpp)里,而将其声明部分放在另一个头文件(.h或.hpp)里,你可以按照以下步骤操作:
**模板类函数声明(.h 或 .hpp 文件):**
```cpp
// template_class.h 或 template_class.hpp
#ifndef TEMPLATE_CLASS_H
#define TEMPLATE_CLASS_H
// 模板类的命名空间或包含文件(如果需要)
namespace MyClass {
template <typename T>
class TemplateClass; // 声明模板类
// 模板函数声明
void someFunction(T value); // 函数模板声明,带类型参数T
}
#endif // TEMPLATE_CLASS_H
```
**模板类函数定义(.cpp 文件):**
```cpp
// template_class.cpp
#include "template_class.h" // 包含头文件,确保模板声明可见
namespace MyClass {
template <typename T>
class TemplateClass {
public:
void someFunction(T value) { // 实现模板函数
// ...
}
};
}
```
当你在其他文件中使用这个模板类和函数时,只需`#include "template_class.h"`即可,并通过`MyClass::TemplateClass<T>::someFunction(value)`的形式调用它。
阅读全文