C++之運算符重載,輸入輸出流詳細(xì)介紹

字號:

有了C++語言,你就可以重載函數(shù)和運算符。重載是一種應(yīng)用,它在同一范圍中為一個給定函數(shù)名稱提供了多種定義。委托編譯器依據(jù)調(diào)用該函數(shù)的參量選擇合適的函數(shù)或運算符的版本。例如:
    double max(double d1,double d2)
    {
    return (di>d2)?d1:d2;
    }
    int max (int e1,int e2)
    {
    return (e1>e2)?e1:e2;
    }
    作為一個重載函數(shù),函數(shù)max在程序中使用如下:
    main()
    {
    int e=nax(12,8);
    double d=max(123.4,12.3);
    return e+(int)d;
    }
    在第一個例子中,要求出兩個整型變量的值,故調(diào)用函數(shù)(int,int)。然而,在第二種情況下,兩個參量是浮點型,因此調(diào)用的函數(shù)是max(double,double)。
    重載函數(shù)之間的區(qū)別在于帶有不同初始值的參量類型。因而對一個給定類型的參量以及對于該類型的引用,在重載的意義上來說是完全相同的。它們被看成是相同的,因為它們采用了相同的初始值。例如:max(double,double)和(double&,double &)是完全相同的,說明兩個這樣的函數(shù)會引起錯誤。出于相同的原因,用修飾符const和volatile進(jìn)行修飾的函數(shù)參量類型同基本類型,在重載的意義上看沒有什么不同。然而重載函數(shù)的機(jī)制可以區(qū)分由const或volatile修飾的引用以及基本類型的引用。指向const和volatile對象的指針和指向其基本類型的指針在重載意義上是不同的。