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(具有一个实参的构造函数)的主要内容,如果未能解决你的问题,请参考以下文章
1.disturb,interrupt,disrupt的区别
编写一个参数JavaScript函数parseQueryString,它的用途是把url参数解析为一个对象