模板类的继承
来源:互联网 发布:json转base64 编辑:程序博客网 时间:2024/04/29 16:23
模板类的继承包括四种:
1.(普通类继承模板类)
2.(模板类继承了普通类(非常常见))
3.(类模板继承类模板)
4.(模板类继承类模板,即继承模板参数给出的基类)
其中,普通类继承模板类比较简单,如
1 template<class T>2 class TBase{3 T data;4 ……5 };6 class Derived:public TBase<int>{7 ……8 };
模板类继承普通类:
1 class TBase{2 ……3 };4 template<class T>5 class TDerived:public TBase{6 T data;7 ……8 };
类模板继承类模板:
1 template<class T> 2 class TBase{ 3 T data1; 4 …… 5 }; 6 template<class T1,class T2> 7 class TDerived:public TBase<T1>{ 8 T2 data2; 9 ……10 };
4. 模板类继承模板参数给出的基类
——继承哪个基类由模板参数决定
1 #include<iostream> 2 using namespace std; 3 4 class BaseA{ 5 public: 6 BaseA(){cout<<"BaseA founed"<<endl;} 7 }; 8 class BaseB{ 9 public:10 BaseB(){cout<<"BaseB founed"<<endl;}11 };12 template<typename T, int rows>13 class BaseC{14 private:15 T data;16 public:17 BaseC():data(rows){18 cout<<"BaseC founed "<< data << endl;}19 };20 template<class T>21 class Derived:public T{22 public:23 Derived():T(){cout<<"Derived founed"<<endl;}24 };25 26 void main()27 {28 Derived<BaseA> x;// BaseA作为基类29 Derived<BaseB> y;// BaseB作为基类30 Derived<BaseC<int, 3> > z; // BaseC<int,3>作为基类31 }
第四个比较奇怪点,,,深思ing。。。
- 模板类的继承
- 类模板的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 模板类的继承
- 继承QVector----模板类的继承
- STL模板类的继承
- 解决Android SDK Manager更新失败问题
- 请大神帮我看看这段代码
- 一个最简单的驱动Makefile
- windows socket编程
- 巧用“谷歌学术”,轻松完成参考文献
- 模板类的继承
- CommandArgument绑定多个值
- WaitForSingleObject()在Linux,vxWorks下的等价函数
- 阿里巴巴 强大的帝国时代
- 编译framework出现Nothing to be done for `all_modules'
- 黑马程序员——交通灯管理系统的学习
- 【linux】自定义rpm打包路径
- 帮找回硬盘上的数据
- SQLserver实践总结