码迷,mamicode.com
首页 > 编程语言 > 详细

C++ non-explicit-one argument ctor(具有一个实参的构造函数)

时间:2020-01-28 23:32:03      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:code   简化   action   获取   实参   get   using   color   vat   

//non-explicit-one argument ctor(具有一个实参的构造函数)
#include <iostream> 
using namespace std;
class Fraction
{
    public:
          Fraction(int num,int den=1) 
          :m_numerator(num),m_denominator(den){//虽然具有两个变量,但是其中一个den已经赋给了初值,所以处理时只需要传入一个实数 
          }
        int get_m_numerator() const{return m_numerator;}    
        int get_m_denominator() const{return m_denominator;}
    private:
       int m_numerator;//分子
       int m_denominator; //分母 
};
inline int get_m_numerator
(const Fraction& x)
{
  return x.get_m_numerator ();//需要利用令一层嵌套,来获取类里的值;
                              //在类中的不能直接调用,会报错未声明,需要再次声明 
}

inline int get_m_denominator
(const Fraction& x)
{
  return x.get_m_denominator ();
}
inline Fraction
operator + (const Fraction& x, const Fraction& y)
{
  return Fraction ( get_m_numerator(x) + get_m_numerator(y), get_m_denominator (x) + get_m_denominator (y));//为了简化直接以分母为1来实现,简化了通分的步骤 
}
int main()
{
    Fraction f(3,1);
    Fraction d=f+4;//编译器会查找是否定义操作符‘+’的操作,发现已经定义
                   //调用 noexplicit ctor将四转化为Fraction(4,1)
                   //然后调用operator+,实现相加 
    cout<<d.get_m_numerator()<<endl;
    return 0;
}

 

C++ non-explicit-one argument ctor(具有一个实参的构造函数)

标签:code   简化   action   获取   实参   get   using   color   vat   

原文地址:https://www.cnblogs.com/zmachine/p/12239089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!