类模版之全特化
来源:互联网 发布:python re.split 用法 编辑:程序博客网 时间:2024/05/19 00:39
//类模板(模板定义以关键字template开始,后接尖括号括住的模板形参表,形参前用class或者typename关键字修饰)template<class T1, typename T2>class Compare{public: Compare(T1 x = 0, T2 y = 0) :x(x), y(y) { } bool isEqual() { if (x == y) return true; return false; } T1 getX(); void setX(T1 x);private: T1 x; T2 y;};//每一个在类模板外定义的函数都要带一个帽子template<class T1, typename T2>T1 Compare<T1, T2>::getX(){ return x;}//每一个在类模板外定义的函数都要带一个帽子template<class T1, class T2>void Compare<T1, T2>::setX(T1 x){ this->x = x;}//类模板全特化template<>class Compare<const char *, const char *>{public: Compare(const char *x = 0, const char *y = 0) :x(x), y(y) { } bool isEqual() { if (!strcmp(x, y)) return true; return false; } const char* getX(); void setX(const char* x);private: const char *x; const char *y;};void main(){ //使用类模板时,必须为模板形参显示指定实参,此处为int,int型 Compare<int, int> com1(10, 20); com1.setX(20); cout << com1.isEqual() << endl; Compare<string,string> com2("jack", "jack"); cout << com2.isEqual() << endl; Compare<const char*, const char*> com3("jack", "jack"); cout << com3.isEqual() << endl; char buf[] = "jack"; Compare<const char*, const char*> com4("jack", buf); cout << com4.isEqual() << endl;}
阅读全文
0 0
- 类模版之全特化
- 函数模版之全特化
- 类模版之偏特化
- 模版全特化与偏特化
- C/C++模版特化、偏特化、全特化
- 类模版的特化
- C++类模版特化
- C++ 类模版 特化
- 关于模版函数的全特化
- 类模版成员特化示例
- 类模版偏特化示例
- 模版特化 偏特化
- 类模板的 全特化、偏特化
- 模版特化
- 模版特化
- 模版/模版函数的全特化/偏特化与类型萃取技术
- 类模版的特化 及 特化的继承
- 函数模板和类模板 模版特化
- 使用广度优先搜索生成关键路径
- MSVCP110D.DLL丢失问题
- dojo的订阅主题和发布主题
- 微信开发
- POJ 1909 Marbles on a tree 笔记
- 类模版之全特化
- MYSQL#1418错误
- Linux 性能监测:Network
- redis相关知识点整理
- Python中的模块介绍和使用
- Git常用命令
- 信号与槽的connect连接函数
- 【JavaSE学习笔记】选择结构语句_switch语句
- 从RNN到LSTM