member template成员模板笔记----C++学习之路
来源:互联网 发布:淘宝成功之处 编辑:程序博客网 时间:2024/06/03 03:27
1.所谓成员模板,模板中有个member,它本身也是一个template,就叫做成员模板。
2.例子:
template <class T1, class T2>struct pair{ typedef T1 first_type; typedef T2 second_type; T1 first; T2 second; pair() :first(T1()), second(T2()) {} pair(const T1& a ,const T& b) :first(a),second(b) {} template<class U1, class U2> pair(const pair<U1,U2>& p) :first(p.first),second(p.second) {}};在模板上T1 T2在变换过程中,如果已经固定,那么在成员中U1 U2又能变换。
3.
class Base1{};class Derived1:public Base1{};class Base2{};class Derived2:public Base2{};假设有这些类的继承关系。
pair<Derived1,Derived2> p;pair<Base1 ,Base2> p2(p);这样就是拿T1 T2来制作一个p。
第二行就是那两个父类来做成一个p2。
这样我们是否能够拿这两个子类放到一个由父类构成的pair中作为初值。
pair<Base1,Base2> p2(pair<Derived1,Derived2>());但是如果Derived1 和Derived2反了的话就会失败。
4.另一种例子的成员模板:
template<typename _Tp>class shared_ptr:public __shared_ptr<_Tp>{ ... template<typename _Tp1> explicit shared_ptr(_Tp1* __p) :__shared_ptr<_Tp>(__p){} ....};所以,当智能指针类型十个父类,new了一个子类,这是可以的。
Base1* ptr = new Derived1; //up-castshared_ptr<Base1> sptr(new Derived1);也就是说,当我们指向一个人类的父类,那么指向女人也是可以的。
阅读全文
0 0
- member template成员模板笔记----C++学习之路
- 成员模板(member template)
- 再看成员模板---member template
- C++Template学习笔记之函数模板
- C++ - 成员函数(member function)模板(template) 详解 及 代码
- 成员函数(member function)模板(template) 详解 及 代码
- template template parameter模板模板参数笔记----C++学习之路
- class template类模板笔记----C++学习之路
- function template函数模板概念笔记----C++学习之路
- C++ template学习笔记之模板特化
- C++ Template学习笔记之函数模板(1)——函数模板定义
- C++ Template学习笔记之函数模板(3)——模板实参推演
- C++ Template学习笔记之函数模板(5)——模板编译模式
- C++ Template学习笔记之函数模板(7)——重载函数模板
- C++ Template学习笔记之函数模板(1)——函数模板定义
- C++ Template学习笔记之函数模板(3)——模板实参推演
- C++ Template学习笔记之函数模板(5)——模板编译模式
- C++ Template学习笔记之函数模板(7)——重载函数模板
- 如何自己成功搭建一个SSM框架的WEB项目
- centos7搭建redis集群环境
- 分页介绍;分页的种类,分页的原理
- 自然语言处理(二)
- <C++>指针和二维数组
- member template成员模板笔记----C++学习之路
- 模式识别期中复习
- 20171109 自省
- laravel构架下phpunit安装爬坑记录
- HTML打开摄像头,进行拍照上传
- web集群部署(实例大于等于2个),nginx作为中间件时候,后端websocket有时候消息无法传递给客户端
- 通过 hover 来改变 border 颜色大小的时候,标签位置发生移动的问题
- 不玩没用的,双十一搞促销十万人民币送起来
- C++中使用clock()函数测试程序时间