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++提供了传递变量的引用。形参是引用变量和实参是一个变量 调用函数时 形参(引用变量)指向实参变量单元。这种通过形参引用可以改变实参的值
  • 相关阅读:
    51 Nod 1086 多重背包问题(单调队列优化)
    51 Nod 1086 多重背包问题(二进制优化)
    51 Nod 1085 01背包问题
    poj 2559 Largest Rectangle(单调栈)
    51 Nod 1089 最长回文子串(Manacher算法)
    51 Nod N的阶乘的长度 (斯特林近似)
    51 Nod 1134 最长递增子序列(经典问题回顾)
    51 Nod 1020 逆序排列
    PCA-主成分分析(Principal components analysis)
    Python中cPickle
  • 原文地址:https://www.cnblogs.com/suizhixxie/p/10472666.html
Copyright © 2011-2022 走看看