头文件
//q.h
#pragma once
template <typename T>
class a {
public:
a(T b = 0);
T geta();
a operator+(const a& other);
void print();
private:
T b;
};
.cpp //.cpp 改为 . hpp是行业内默认实现模板类的文件
//q.cpp 改为 q.hpp hpp是行业内默认实现模板类的文件
#include "q.h"
#include <iostream>
using namespace std;
template<typename T>
inline a<T>::a(T b)
{
this->b = b;
}
template<typename T>
T a<T>::geta() {
return b;
}
template <typename T>
a<T> a<T>::operator+ (const a & other) {
a<T> tep;
tep.b = this->b + other.b;
return tep;
}
template<typename T>
void a<T>::print()
{
cout<<this->b;
}
!!!!注意包含头文件时要使用.hpp的名称不然编译器会报错
#include "q.h"错!!!
#include "q.hpp"
方可通过编译