模版类 .h文件 和.cpp文件中应该怎么写
时间: 2023-08-16 12:33:30 浏览: 120
模板类的声明和定义通常需要分离到头文件和源文件中进行。
在头文件中,你需要声明模板类的成员函数和数据成员,同时需要使用关键字`template`来声明模板类型参数。例如:
```c++
// MyClass.h
#ifndef MYCLASS_H
#define MYCLASS_H
template<typename T>
class MyClass {
public:
MyClass();
void doSomething(T data);
private:
T mData;
};
#include "MyClass.cpp"
#endif
```
在源文件中,你需要实现模板类的成员函数。由于模板类的定义需要包含模板参数,因此你需要在源文件中引入头文件,并使用关键字`template`来指定模板参数。例如:
```c++
// MyClass.cpp
#include "MyClass.h"
template<typename T>
MyClass<T>::MyClass() {
//...
}
template<typename T>
void MyClass<T>::doSomething(T data) {
//...
}
```
需要注意的是,由于模板类的定义在源文件中,因此在使用该模板类的代码中,需要包含头文件而非源文件。例如:
```c++
// main.cpp
#include "MyClass.h"
int main() {
MyClass<int> obj;
obj.doSomething(10);
return 0;
}
```
此外,由于模板类的实现需要在编译时进行,因此不能将模板类的成员函数实现放在库文件中,而需要将其放在头文件或源文件中。
阅读全文