template以及operator*的正确用法
来源:互联网 发布:成都专业网络推广公司 编辑:程序博客网 时间:2024/05/11 23:06
这是看《Effective c++》时在VS上玩的代码。
#include <iostream>using namespace std;template<typename T>class Rational{public:Rational(const T& numerator =0,const T& denominator = 1);const T numerator() const;//不暴露私有变量给调用者修改const T denominator() const;//为了让类型转换可能发生于所有实参身上,需要non-member函数;//为了让这个函数被自动具现化,需要将它声明在class内部friend const Rational operator*(const Rational& lhs,const Rational& rhs){return Rational(lhs.numerator()*rhs.numerator(),lhs.denominator()*rhs.denominator());}/*如果类内提供声明:friend const Rational operator*(const Rational& lhs,const Rational& rhs);然后在外部提供定义式:template<typename T>const Rational<T> operator*(const Rational<T>& lhs,const Rational<T>& rhs){return Rational(lhs.numerator()*rhs.numerator(),lhs.denominator()*rhs.denominator());}可是链接时不成功:无法解析的外部符号"class Rational<int> const __cdecl operator*(class Rational<int> const &,class Rational<int> const &)"*/ void print(){cout<<numerator()<<"/"<<denominator()<<endl;}private:T num;T deno;};template<typename T>Rational<T>::Rational(const T& numerator,const T& denominator){num = numerator;deno = denominator;}template<typename T>const T Rational<T>::numerator()const {return num;}template<typename T>const T Rational<T>::denominator()const {return deno;}int main(){Rational<int> a (2,7);Rational<int> b = a*2;//2被转换成Rational(2),分子赋值为2,分母没值默认为1b.print();Rational<int>c =a*a;c.print();return 0;}
- template以及operator*的正确用法
- 正确的重载operator+
- 正确的重载operator
- 正确的重载operator+
- 正确的重载operator+
- Python中的sorted以及operator.itemgetter的用法
- appendchild的两个正确用法以及ajax
- operator 的主要用法
- 关于operator 的用法
- operator 的用法
- operator new和operator delete 的用法
- BZOJ 3884(上帝与集合的正确用法-欧拉函数递推找极限)[Template:数论 V2]
- template 的用法
- template 的用法
- template 的 用法
- 关于template的用法
- Live Template的用法
- 浅叙operator 的主要用法
- android实现session保持
- 迷茫---随笔
- Android软键盘弹出不影响布局的方…
- 用0-6的随机函数构造一个0-9的随机函数
- 史上最全的Android开发索引帖
- template以及operator*的正确用法
- Android自定义捕获Application全局…
- ACRA3介绍
- 如何查看所有好友的聊天记录
- 动态创建的 Button, 动…
- 开机自动启动程序
- Android程序性能测试工具
- 【解决Win7系统缩略图无法显示问题】
- 手机无法获取调试信息(Log日志)---…