effective C++条款四十六解读
来源:互联网 发布:oracle数据库备份方法 编辑:程序博客网 时间:2024/06/06 02:00
需要类型转换时,请为模板定义class 内部的friend函数
还是以一个例子作为开头:
template <class T>
class Rational
{
public:
Rational(const T& numerator=0,const T&numerator=1 );
}
template<T>
const Rational<T> operator*(const Rational<T> &lhs,const Rational<T>&rhs);
{
...
}
Rational<int> onehalf(1,2);
Ratinal<int> res=onehalf*2;
这个函数低啊用Rational<int> res=onehalf*2是无法通过编译,模板函数要进行参数推导,那么他在推导2的时候遇到了障碍.要让这个函数通过编译,我们可以利用类不用进行函数推导的性质声明并定义个friend内部函数。
template <class T>
class Rational
{
public:
Rational(const T& numerator=0,const T&numerator=1 );
friend const Rational operator*(const Rational &lhs,const Rational&rhs);
{
...
}
}
Rational<int> onehalf(1,2);
Ratinal<int> res=onehalf*2;
这样类在定义的时候就声明出了operator*(const Rational &lhs,const Rational&rhs);解可以将2隐式转换。
阅读全文
0 0
- effective C++条款四十六解读
- Effective C++ 条款二解读
- effective C++ 条款三 解读
- effective c++ 条款4解读
- effective C++条款五解读
- effective C++ 条款六解读
- effective C++ 条款八解读
- effective C++ 条款九解读
- effective C++ 条款十解读
- effective C++ 条款十一解读
- effective C++ 条款十二解读
- effective C++ 条款十三解读
- effective c++ 条款十四解读
- effective C++条款十五解读
- effective C++ 条款十六解读
- effective C++ 条款十七解读
- effective C++ 条款十八解读
- effective C++条款十九解读
- 【Android】状态栏相关适配(判断MIUI,Flyme,状态栏图标颜色切换,获取状态栏高度,沉浸式状态栏相关等)
- ubuntu16.04+opencv3.1.0
- Android快速开发系列 10个常用工具类
- html标签中物理标记和逻辑标记区别
- 学习笔记21-SVM支持向量机
- effective C++条款四十六解读
- C++ dll 类型与 C#类型对应关系
- Qmake
- Java 反射有效的修改 final 属性值
- C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
- RPM软件包的安装及卸载
- RecyclerView里notifyItemRemoved的坑
- 从Java角度分析Python的入门介绍
- 快速入门shell脚本编写(四)