zoukankan      html  css  js  c++  java
  • C plus plus day5 转换函数和引用

    转换函数

    class Fraction
    {
    public:
        Fraction(int num,int den=1)
        : m_numerator(num), m_denominator(den){}
        //转换函数没有返回类型 就是名称里的类型  转换不会改动类中的数据
        //注意const
        operator double() const{
            return (double)(m_numerator / m_denominator);
        }
    private:
        int m_numerator;
        int m_denominator;
        
    };
    
    
    Fraction f(3,5);
    //f里面没有+操作符  编译器就会尝试把f转换成double类型的 再去运算
    double d=4+f;//调用operator double()将f转为0.6
    class Fraction
    {
    public:
        Fraction(int num,int den=1)//只要一个实参就够了
        : m_numerator(num), m_denominator(den){}
        Fraction operator+(const Fraction& f){
            return Fraction(...);
        }
    
    private:
        int m_numerator;
        int m_denominator;
        
    };
    
    
    Fraction f(3,5);
    
    double d2=f +4;
    //将4转为Fraction(4,1)     类中+作用在右边
    //然后调用operator+
    class Fraction
    {
    public:
    	explict Fraction(int num,int den=1)
    	: m_numerator(num), m_denominator(den){}
    	operator double() const{
    		return (double)(m_numerator / m_denominator);
    	}	
    	Fraction operator+(const Fraction& f){
    		return Fraction(...);
    	}
    
    private:
    	int m_numerator;
    	int m_denominator;
    	
    };
    
    
    Fraction f(3,5);
       
    double d2=f +4;  //如果不加explict  编译会出错 编译器不知道去执行operator+ 还是Fraction
    

      如果两个函数同时都有,需要看explict关键字 在哪个函数上面 哪个函数不会执行

     引用

     c++增加引用类型,主要把他作为函数参数,以扩充函数传递数据的功能。

    c++函数传参

    1. 将变量名作为实参和形参,这时传给形参的是变量的值,传递是单向的,如果在执行函数期间形参的值发生变化,并不传回给实参,因为在调用函数时,形参和实参不是同一个存储单元。
    2. 传递变量的指针,形参是指针变量,实参是一个变量的地址,调用函数时,形参(指针变量)指向实参变量单元,这种通过形参指针可以改变实参的值
    3. c++提供了传递变量的引用。形参是引用变量和实参是一个变量 调用函数时 形参(引用变量)指向实参变量单元。这种通过形参引用可以改变实参的值
  • 相关阅读:
    Python mutilprocessing Processing 父子进程共享文件对象?
    BZOJ4836: [Lydsy1704月赛]二元运算
    博弈论刷题记录
    manacher(无讲解)
    UOJ_407_【IOI2018】狼人
    BZOJ_3935_Rbtree
    dsu on tree(无讲解)
    BZOJ_3744_Gty的妹子序列
    后缀数组(无讲解)
    虚树(无讲解)
  • 原文地址:https://www.cnblogs.com/suizhixxie/p/10472666.html
Copyright © 2011-2022 走看看