成员函数模板
来源:互联网 发布:如何网络挣钱 编辑:程序博客网 时间:2024/05/06 11:03
1 背景
参考资料[1]P218的条款45:运用成员函数模板接受所有兼容类型,提出了如何使得自定义的智能指针支持隐式类型转换的方法,其中用到的技巧就是使用成员函数模板。关于其详细的原理,书中已经说的很清楚,只是在编程的过程中会遇到挫折,故在此记录一下成功通过的编译的代码(见下一章)。
2 代码
template< class T >class SmartPtr {public:// constructortemplate< class Y > explicit SmartPtr( Y* t ){} // copy constructortemplate< class Y >SmartPtr( SmartPtr< Y > const &other ){ }};class Top{};class Middle:public Top{};int main( void ){SmartPtr< Top > pt1 = SmartPtr< Middle >( new Middle );return 0;}
说明:
a)new Middle要使用到构造函数,因此SmartPtr的第一个构造函数必须定义,否则无法通过编译;
b)将Middle型指针转换为Top型指针,需要用到copy构造函数,因此SmartPtr的第二个构造函数必须定义,否则无法通过编译。
参考资料
[1]Effective C++,中文版(第三版)
0 0
- 成员函数模板
- 成员函数模板
- 成员函数模板
- 类模板成员函数
- 类模板的成员函数
- Item 45 成员函数模板
- c++类成员函数模板
- 类成员函数作为模板
- 类模板的成员函数
- C++ 类模板成员函数
- 类模板的成员函数模板写法
- 成员函数模板不能为虚函数
- C++成员函数模板特化问题
- 模板类成员函数特化写法
- C++模板类中的静态成员函数
- 类模板成员函数的调用问题
- 普通类的模板成员函数
- c++模板类成员函数的写法
- 看看这个常常被初级程序员弄不懂的 “事件”
- Android http超时选项的测试
- HDOJ 1091 A+B for Input-Output Practice (III)(水题)
- 神奇的decimal,也许面试会问到哦~
- 只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:1对变量的写操作不依赖于当前值。 2该变量没有包含在具有其他
- 成员函数模板
- sphinx 命令
- 二分查找(递归与非递归)
- 关于“构造函数”中的几个小问题,也许面试会问到哦~
- (WPF)依赖属性
- HDU 5294 Tricks Device (最大流+最短路)
- udp socket bind fail
- Android开发之利用jsoup制作简易的图书馆图书搜索客户端
- 小学期训练题B-并查集