C++ 模版类的定义 与使用
1、定义
template <typename T> class A { public: // A(T t) { // this->t = t; // } void setT(T t) { this->t =t; } T& getT() { return t; } private: T t; };
使用:
A<int> a; a.setT(16); cout<< a.getT()<<endl;
关注与实现分离的写法
// A.h
#pragma once template<typename T> class A { public: void setT(T t) ; T& getT(); private: T t; };
// A.cpp
#include "A.h" template class A<int>; // Explicit instantiation for int template class A<double>; // Explicit instantiation for int template<typename T> void A<T>::setT(T t) { this->t = t; } //template<typename T> //T & A<T>::getT() { //} template<typename T> T& A<T>::getT() { return this->t; }

浙公网安备 33010602011771号