国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++多態(tài)與虛擬:函數(shù)重載(Function Overloading)

這篇具有很好參考價值的文章主要介紹了C++多態(tài)與虛擬:函數(shù)重載(Function Overloading)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  重載(Overloading):所謂重載是指不同的函數(shù)實體共用一個函數(shù)名稱。例如以下代碼所提到的CPoint之中,有兩個member functions的名稱同為x():

1 class CPoint{
2 
3 public:
4     float x();
5     void x(float xval);
6 
7 };

??  其兩個member functions實現(xiàn)代碼如下:

1 float CPoint::x(){return x;}
2 void  CPoint::x(float xval){_x=xval;}

  函數(shù)名稱相同,但參數(shù)不同(個數(shù)不同,型別也不同),實現(xiàn)代碼也不相同。C++之所以有function overloading的機制,是為了解決因為數(shù)據(jù)類型不同而需要設計多個算法相同,但函數(shù)名不同的函數(shù)代碼的問題。舉個例子,加法就是加法,如果為了int、float、double、long....各設計出對應的AddInt()、AddFloat()、AddDouble()、AddLong()...等加法函數(shù),我們會覺得很煩鎖,不漂亮。如果能夠把它們?nèi)慷冀凶鯝dd(),而我們不管對哪種數(shù)據(jù)類型做加法運算,都呼叫Add()就好,那么就運算層面來看就清爽多了。至于底層機制,則由編譯器根據(jù)Add()所獲得的參數(shù)型別,決定真正該喚起哪一個Add()函數(shù)實體。于是,以加法為例,我們可以設計以下四個同名函數(shù):

1 int     Add(int a,int,b);
2 long    Add(long a,long b);
3 double  Add(double a, double b); 
4 float   Add(float a,float b);

  并這樣使用之:

1      int    i=Add(3,5);
2      long   l=Add(3L,5L);
3      double d=Add(3.1415926,5.1615926);
4      float  f=Add(3.14,5.14); 

  Function overloading 適用于class member functions (如先前的CPoint::x()),也適用于一般的global functions(如上術(shù)的Add()).

? ? ? ?Function overloading 無法適用于函數(shù)名稱相同,參數(shù)也完全相同,只有返回值不同的情況。這種情況將無法通過編譯,會出現(xiàn)報錯提示:

  error?C2556:?'Add' :?overloaded?functions?only?differ?by?return?type

  我們已經(jīng)看到了,所謂的function overloading 只不過是讓諸多的函數(shù)實體可以采用相同的函數(shù)名稱,事實上你還是要編寫好幾份不同(但邏輯十分類式)的函數(shù)實現(xiàn)代碼。為了能夠解決因為數(shù)據(jù)類型不同而需要設計多個算法相同,但函數(shù)名不同的函數(shù)代碼的問題,比較好的做法是把參數(shù)看作只有一種類型。C++ Template 可以辦到這一點,我們將在往后的文章來談這個非常棒的主題。


文章來源地址http://www.zghlxwxcb.cn/news/detail-857026.html

到了這里,關(guān)于C++多態(tài)與虛擬:函數(shù)重載(Function Overloading)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 【C++學習】C++入門 | 缺省參數(shù) | 函數(shù)重載 | 探究C++為什么能夠支持函數(shù)重載

    【C++學習】C++入門 | 缺省參數(shù) | 函數(shù)重載 | 探究C++為什么能夠支持函數(shù)重載

    上一篇文章我介紹了C++該怎么學,什么是命名空間,以及C++的輸入輸出, 這里是傳送門:http://t.csdn.cn/Oi6V8 這篇文章我們繼續(xù)來學習C++的基礎知識。 目錄 寫在前面: 1. 缺省參數(shù) 2. 函數(shù)重載 3. C++是如何支持函數(shù)重載的 寫在最后: 在學習C語言的時候,如果一個函數(shù)存在參數(shù)

    2024年02月13日
    瀏覽(25)
  • C++ 學習 ::【基礎篇:05】:C++ 函數(shù)重載認識及使用、簡單介紹:C++ 支持函數(shù)重載的原因

    C++ 學習 ::【基礎篇:05】:C++ 函數(shù)重載認識及使用、簡單介紹:C++ 支持函數(shù)重載的原因

    本系列 C++ 相關(guān)文章 僅為筆者學習筆記記錄,用自己的理解記錄學習!C++ 學習系列將分為三個階段: 基礎篇、STL 篇、高階數(shù)據(jù)結(jié)構(gòu)與算法篇 ,相關(guān)重點內(nèi)容如下: 基礎篇 : 類與對象 (涉及C++的三大特性等); STL 篇 : 學習使用 C++ 提供的 STL 相關(guān)庫 ; 高階數(shù)據(jù)結(jié)構(gòu)與算

    2024年02月06日
    瀏覽(25)
  • C++ 多態(tài)與虛擬:Class 語法語義

    C++ 多態(tài)與虛擬:Class 語法語義

    1.object與class:在 object-oriented programming 編程領(lǐng)域,對象(object)有更嚴格的定義。對象是由數(shù)據(jù)結(jié)構(gòu)和用于處理該結(jié)構(gòu)的過程(稱為methods)組成的實體(instance)。這些方法由對象接收的消息激活。一個對象的內(nèi)部數(shù)據(jù)結(jié)構(gòu)與其他對象完全隔離(此屬性稱為“encapsulation”)。

    2024年04月24日
    瀏覽(15)
  • 【C++】函數(shù)重載 & 引用 & 內(nèi)聯(lián)函數(shù)

    【C++】函數(shù)重載 & 引用 & 內(nèi)聯(lián)函數(shù)

    目錄 一,函數(shù)重載 1,函數(shù)重載的概念 2,C++支持函數(shù)重載的原理 二,引用 1,引用概念 2,引用特性 3,常引用 4,做參數(shù) 5,做返回值 6,傳值、傳引用效率比較 7,值和引用的作為返回值類型的性能比較 8,引用和指針的區(qū)別 三,內(nèi)聯(lián)函數(shù) 1,概念 2,特性 自然語言中,一個

    2024年02月08日
    瀏覽(19)
  • c++ ——命名空間、缺省函數(shù)、函數(shù)重載

    在C/C++中,變量、函數(shù)和后面要學到的類都是大量存在的,這些變量、函數(shù)和類的名稱將都存 在于全局作用域中,可能會導致很多沖突。使用命名空間的目的是對標識符的名稱進行本地化, 以避免命名沖突或名字污染,namespace的出現(xiàn)就是針對這種問題的 簡單一句話命

    2024年02月16日
    瀏覽(28)
  • C++ 面向?qū)ο螅?)——重載運算符和重載函數(shù)

    C++ 面向?qū)ο螅?)——重載運算符和重載函數(shù)

    C++ 允許在同一作用域中的某個 函數(shù) 和 運算符 指定多個定義,分別稱為 函數(shù)重載 和 運算符重載 。 重載聲明是指一個與之前已經(jīng)在該作用域內(nèi)聲明過的函數(shù)或方法具有相同名稱的聲明,但是它們的參數(shù)列表和定義(實現(xiàn))不相同。 當您調(diào)用一個 重載函數(shù) 或 重載運算符 時

    2024年02月10日
    瀏覽(23)
  • C++入門:函數(shù)缺省參數(shù)與函數(shù)重載

    C++入門:函數(shù)缺省參數(shù)與函數(shù)重載

    目錄 1.函數(shù)缺省參數(shù) 1.1 缺省參數(shù)概念 1.2 缺省參數(shù)分類 2.函數(shù)重載 2.1 函數(shù)重載概念 2.2 C++支持函數(shù)重載的原理 缺省參數(shù)是 聲明或定義函數(shù)時 為函數(shù)的 參數(shù)指定一個缺省值 。在調(diào)用該函數(shù)時,如果沒有指定實 參則采用該形參的缺省值,否則使用指定的實參,有點備胎的意

    2024年02月12日
    瀏覽(23)
  • 【C++入門】函數(shù)重載

    函數(shù)重載就是在同一個作用域內(nèi),允許存在參數(shù)不同的同名函數(shù) 。 例子: 例子: 例子: 注意這里的順序指的是參數(shù)類型的順序,而不是參數(shù)名的順序。 比如下面的例子就不構(gòu)成函數(shù)重載。 C++ 支持函數(shù)重載的本質(zhì),其實是因為 C++ 特殊的函數(shù)名修飾規(guī)則。 我們知道 C 語言

    2024年02月15日
    瀏覽(22)
  • C++系列-函數(shù)重載

    函數(shù)名可以相同, 提高復用性 同一個作用域下 函數(shù)名相同 函數(shù)參數(shù)不同 – 參數(shù)個數(shù)不同 – 參數(shù)順序不同 – 參數(shù)類型不同 不可以使用返回值作為重載的條件 引用作為重載 參數(shù)可以分為const和非const。 函數(shù)重載遇到默認參數(shù)

    2024年02月12日
    瀏覽(16)
  • C++之函數(shù)重載【詳解】

    C++之函數(shù)重載【詳解】

    ??重載函數(shù)是函數(shù)的一種特殊情況,為方便使用,C++允許在同一中聲明幾個功能類似的同名函數(shù),但是這些同名函數(shù)的形式參數(shù)(指參數(shù)的個數(shù)、類型或者順序)必須不同,也就是說用同一個函數(shù)完成不同的功能。這就是重載函數(shù)。重載函數(shù)常用來實現(xiàn)功能類似而所處理的

    2024年02月06日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包