1.类模板的定义
//类模板 //对某一个类型进行变量的替换 //类模板放在.h文件中
.h
#pragma once //类模板 //对某一个类型进行变量的替换 //类模板放在.h文件中 //类模板的定义 //支持多个及默认参 *** 作 templateclass CTest { public: //写于类域内部 CTest& foo(CTest& obj) { return *this; } private: T m_nInt; K m_nDouble; int m = n; };
.cpp
#include#include"testCPP.h" int main(int argc,char* argv[]) { //只能通过显式实例化使编译器猜对使用的类型 CTest t; return 0; }
2.类模板的显式实例化
//只能通过显式实例化使编译器猜对使用的类型 CTestt;
3.类模板的函数体的写法
类模板的函数体可以写在类内,也可以利用四饼连接符写在类外,上为写在类内,下为写在类外的形式。
4.类模板的函数特例
//类模板成员函数特例 template<> char* CTest::get() { return "Hello"; }
.h
#pragma once //类模板 //对某一个类型进行变量的替换 //类模板放在.h文件中 //类模板的定义 //支持多个及默认参 *** 作 templateclass CTest { public: //CTest& foo(CTest& obj) { // return *this; //} CTest& foo(CTest& obj); T get(); private: T m_nInt; //K m_nDouble; //int m = n; }; //写于类域外部 template CTest & CTest ::foo(CTest & obj) { T obj2; return *this; } //普通类模板成员函数 template T CTest ::get() { return m_nInt; } //类模板成员函数特例 template<> char* CTest ::get() { return "Hello"; }
.cpp
#include#include"testCPP.h" int main(int argc,char* argv[]) { //只能通过显式实例化使编译器猜对使用的类型 //类模板成员函数特例 CTest t; char* p = t.get(); //非特例 CTest t2; int n = t2.get(); return 0; }
5.学习视频地址:类模板
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)