C++惯用法:通过成员模板实现隐式转换(Coercion by Member Template)
来源:互联网 发布:阿里云监控 docker 编辑:程序博客网 时间:2024/05/20 11:52
往往将子类指针转换成父类指针进行操作是常见的且是非常有用的,如下
同样,对于内建类型(built-in type)的隐式转换也是常见的,如下
然而在很多时候,会出现对某一类型的封装进行管理,如下定义一类型包装类
此时,对于同类型的拷贝与赋值不会出现问题
然而对于向上类型转换却不能通过编译,但这往往是直观并应该正确的,如下
解决方法便是使用Coercion by Member Template惯用法,新增两个成员模板函数
此时上面的编译便能成功
附注:
Coercion by Member Template 惯用法在很多地方能见到它的身影,如std::auto_ptr, boost::shared_ptr, std::allocator等
英文链接:http://en.wikibooks.org/wiki/More_C++_Idioms/Coercion_by_Member_Template
- C++惯用法:通过成员模板实现隐式转换(Coercion by Member Template)
- C++ - 模板类使用成员函数模板(member function template)处理隐式(implicit)转换
- 模板类使用成员函数模板(member function template)处理隐式(implicit)转换
- 成员模板(member template)
- 再看成员模板---member template
- C++类模板中静态成员变量的隐式实例化问题(Implicit initialization of static member variables for template classes)
- C++ - 成员函数(member function)模板(template) 详解 及 代码
- 成员函数(member function)模板(template) 详解 及 代码
- member template成员模板笔记----C++学习之路
- [翻译] Effective C++, 3rd Edition, Item 46: 需要 type conversions(类型转换)时在 templates(模板)内定义 non-member functions(非成员函数)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- c++ template - 成员模板
- C++模板惯用法
- 【模板】c++ template模板实现string到Num的转换
- C/C++惯用法
- Android Notepad tutorial
- gnome 3 初见
- devexpress问题网
- 对象序列化详解【转】
- no title
- C++惯用法:通过成员模板实现隐式转换(Coercion by Member Template)
- VS2010下安装boost库
- Portfast (Spanning-tree Portfast 端口快速转发)
- 验证Oracle中的块大小
- 自己整理的 actionscript3.0 常用脚本
- OpenMP程序 for 循环并行的效率
- 卓越的程序员是如何炼成的
- 从初学者到电子工程师
- usaco mother'smilk