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

Posted zmachine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ non-explicit-one argument ctor(具有一个实参的构造函数)相关的知识,希望对你有一定的参考价值。

//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(具有一个实参的构造函数)的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本编程之传递参数

1.disturb,interrupt,disrupt的区别

编写一个参数JavaScript函数parseQueryString,它的用途是把url参数解析为一个对象

判断一个数据是不是存在于一个表中,怎么在Oracle中写自定义函数?

原生ajax

10