最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++深入分析回顧函數(shù)重載

 更新時(shí)間:2022年06月01日 10:29:58   作者:清風(fēng)自在 流水潺潺  
C++ 允許多個(gè)函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function Overloading),借助重載,一個(gè)函數(shù)名可以有多種用途

一、函數(shù)重載回顧

  • 函數(shù)重載的本質(zhì)為相互獨(dú)立的不同函數(shù)
  • C++ 中通過函數(shù)名和函數(shù)參數(shù)確定函數(shù)調(diào)用
  • 無法直接通過函數(shù)名得到重載函數(shù)的入口地址
  • 函數(shù)重載必然發(fā)生在同一個(gè)作用域中

二、類中的重載

類中的成員函數(shù)可以進(jìn)行重載

  • 構(gòu)造函數(shù)的重載
  • 普通成員函數(shù)的重載
  • 靜態(tài)成員函數(shù)的重載

問題:全局函數(shù),普通成員函數(shù)以及靜態(tài)成員函數(shù)之間是否可以構(gòu)成重載?

注意事項(xiàng)

  • 重載函數(shù)的本質(zhì)為多個(gè)不同的函數(shù)
  • 函數(shù)名和參數(shù)列表是唯一的標(biāo)識(shí)
  • 函數(shù)重載必須發(fā)生在同一個(gè)作用域中

所以類的成員函數(shù)和全局函數(shù)不能構(gòu)成重載,因?yàn)槿趾瘮?shù)位于全局的命名空間當(dāng)中,而成員函數(shù)位于類里面,作用域不一樣。

下面看一個(gè)重載的示例:

#include <stdio.h>
class Test
{
    int i;
public:
    Test()
    {
        printf("Test::Test()\n");
        this->i = 0;
    }
    Test(int i)
    {
        printf("Test::Test(int i)\n");
        this->i = i;
    }
    Test(const Test& obj)
    {
        printf("Test(const Test& obj)\n");
        this->i = obj.i;
    }
    static void func()
    {
        printf("void Test::func()\n");
    }
    void func(int i)
    {
        printf("void Test::func(int i), i = %d\n", i);
    }
    int getI()
    {
        return i;
    }
};
void func()
{
    printf("void func()\n");
}
void func(int i)
{
    printf("void func(int i), i = %d\n", i);
}
int main()
{
    func();
    func(1);
    Test t;        // 初始化,調(diào)用沒有參數(shù)的構(gòu)造函數(shù)Test(),輸出Test::Test()
    Test t1(1);    // Test::Test(int i)
    Test t2(t1);   // Test(const Test& obj)
    func();        // void func()
    Test::func();  // void Test::func()
    func(2);       // void func(int i), i = 2;
    t1.func(2);    // void Test::func(int i), i = 2
    t1.func();     // void Test::func()
    return 0;
}

輸出結(jié)果如下:

這個(gè)例子展示了類中函數(shù)的重載以及全局函數(shù)的重載,值得多閱讀幾遍!!

三、重載的意義

  • 通過函數(shù)名對(duì)函數(shù)功能進(jìn)行提示
  • 通過參數(shù)列表對(duì)函數(shù)用法進(jìn)行提示
  • 擴(kuò)展系統(tǒng)中已經(jīng)存在的函數(shù)功能

下面看一個(gè)字符串拷貝函數(shù)的重載:

#include <stdio.h>
#include <string.h>
char* strcpy(char* buf, const char* str, unsigned int n)
{
    return strncpy(buf, str, n);
}
int main()
{
    const char* s = "AutumnZe";
    char buf[8] = {0};
    //strcpy(buf, s);
    strcpy(buf, s, sizeof(buf)-1);
    printf("%s\n", buf);
    return 0;
}

輸出結(jié)果如下:

四、小結(jié)

  • 類的成員函數(shù)之間可以進(jìn)行重載
  • 重載必須發(fā)生在同一個(gè)作用域中
  • 全局函數(shù)和成員函數(shù)不能構(gòu)成重載關(guān)系
  • 重載的意義在于擴(kuò)展已經(jīng)存在的功能

到此這篇關(guān)于C++深入分析回顧函數(shù)重載的文章就介紹到這了,更多相關(guān)C++函數(shù)重載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言三子棋小游戲?qū)崿F(xiàn)全程

    C語言三子棋小游戲?qū)崿F(xiàn)全程

    三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。將正方形對(duì)角線連起來,相對(duì)兩邊依次擺上三個(gè)雙方棋子,只要將自己的三個(gè)棋子走成一條線,對(duì)方就算輸了,想用c語言做出這個(gè)游戲,事實(shí)上也是比較簡單的,下面通過c語言進(jìn)行對(duì)五子棋的分析
    2022-05-05
  • 淺談Qt信號(hào)槽與事件循環(huán)的關(guān)系

    淺談Qt信號(hào)槽與事件循環(huán)的關(guān)系

    本文主要介紹了Qt信號(hào)槽與事件循環(huán)的關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • C語言中static與extern關(guān)鍵字的深入解析

    C語言中static與extern關(guān)鍵字的深入解析

    在C語言編程中,static和extern是兩個(gè)非常重要的關(guān)鍵字,它們各自有著獨(dú)特的用途,本文將深入探討這兩個(gè)關(guān)鍵字的工作原理、底層實(shí)現(xiàn)機(jī)制以及在實(shí)際開發(fā)中的應(yīng)用,感興趣的小伙伴跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • C語言計(jì)算大數(shù)相加的方法

    C語言計(jì)算大數(shù)相加的方法

    這篇文章主要為大家詳細(xì)介紹了C語言計(jì)算大數(shù)相加的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 詳解c++11新特性之模板的改進(jìn)

    詳解c++11新特性之模板的改進(jìn)

    這篇文章主要介紹了詳解c++11新特性之模板的改進(jìn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • C++文件讀寫代碼分享

    C++文件讀寫代碼分享

    本文給大家分享的是2個(gè)C++實(shí)現(xiàn)文件讀寫的代碼,都非常的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-07-07
  • c++之類型別名的實(shí)現(xiàn)

    c++之類型別名的實(shí)現(xiàn)

    本文主要介紹了c++之類型別名的實(shí)現(xiàn),包括C++98版本使用typedef關(guān)鍵字和C++11版本推薦使用using關(guān)鍵字來創(chuàng)建類型別名,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • C++實(shí)現(xiàn)打印1到最大的n位數(shù)

    C++實(shí)現(xiàn)打印1到最大的n位數(shù)

    這篇文章主要介紹了C++實(shí)現(xiàn)打印1到最大的n位數(shù),并分析了實(shí)現(xiàn)代碼中語句的跳轉(zhuǎn)技巧,需要的朋友可以參考下
    2014-09-09
  • 一篇文章帶你了解C++語法基礎(chǔ)--字符串

    一篇文章帶你了解C++語法基礎(chǔ)--字符串

    這篇文章主要介紹了C++常用字符串分割方法實(shí)例匯總,包括了strtok函數(shù)、STL、Boost等常用的各類字符串分割方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2021-08-08
  • C++獲取文件大小數(shù)值的三種方式介紹

    C++獲取文件大小數(shù)值的三種方式介紹

    最近在做項(xiàng)目時(shí)經(jīng)常需要獲得文件的大小操作,雖然在網(wǎng)絡(luò)上已經(jīng)有許多篇博客介紹了,但是還是想總結(jié)出自己一篇,記錄一下自己在項(xiàng)目中是怎么獲得文件大小的
    2022-10-10

最新評(píng)論

娱乐| 商都县| 军事| 刚察县| 壤塘县| 天津市| 武鸣县| 离岛区| 肃南| 盱眙县| 清河县| 北宁市| 尼勒克县| 会泽县| 阿图什市| 永兴县| 渑池县| 苏州市| 东山县| 微山县| 府谷县| 隆化县| 类乌齐县| 巩留县| 齐河县| 永靖县| 汕尾市| 舒兰市| 阳山县| 杂多县| 兴山县| 旺苍县| 深水埗区| 高青县| 拉孜县| 东平县| 恩平市| 吉木萨尔县| 峡江县| 汉寿县| 沂源县|