c++头文件定义模板类和模板函数,cpp文件实现函数功能
时间: 2024-03-02 13:50:34 浏览: 111
C++的头文件和实现文件详解
在C++中,模板类和模板函数的定义和实现通常分离在不同的文件中。
首先,定义模板类或者模板函数的头文件中要包含模板参数列表和对应的成员或函数声明。例如,定义一个模板类`MyClass`:
```c++
// MyClass.h
template <typename T>
class MyClass {
public:
MyClass(T value);
void printValue();
private:
T m_value;
};
template <typename T>
MyClass<T>::MyClass(T value) : m_value(value) {}
template <typename T>
void MyClass<T>::printValue() {
std::cout << "Value: " << m_value << std::endl;
}
```
然后,在定义好的头文件中,在类或函数声明后面加上函数实现的代码。例如,在实现`MyClass`的构造函数和`printValue`函数:
```c++
// MyClass.cpp
#include "MyClass.h"
template <typename T>
MyClass<T>::MyClass(T value) : m_value(value) {}
template <typename T>
void MyClass<T>::printValue() {
std::cout << "Value: " << m_value << std::endl;
}
```
最后,在使用模板类或模板函数的源文件中,包含定义好的头文件即可。例如,在`main.cpp`中使用`MyClass`:
```c++
// main.cpp
#include "MyClass.h"
int main() {
MyClass<int> myobj(10);
myobj.printValue();
return 0;
}
```
注意,模板类和模板函数的实现必须在包含模板参数列表的同一文件中,否则编译器无法实例化模板。另外,模板函数的实现也可以放在头文件中,这样可以避免多个文件中的重复代码。
阅读全文