C 函式過載詳解

2021-10-14 02:02:25 字數 1044 閱讀 6021

函式名稱相同,但函式引數列表必須不同,此處的函式列表也成為函式特徵標。特徵標不同則表徵了,引數數目、型別、以及排列順序不同。

void print(const char* str,int width);

void print(double d,int width);

void print(long l,int width);

void print(int i,int width);

unsigned int year = 3320;

print(year,6);

//編譯器將無法選擇呼叫上述任何乙個函式,若是只有乙個print的函式原型,c++會支援轉換。

void add(const int a, const int b);

const int a = 2;

const int b = 2;

int c = 2;

int d = 2;

add(a,b);

add(c,d);

long gronk(int n ,float m);

double gronk(int n ,float m);//互斥!!!對於編譯器無法知道要呼叫何者

long gronk(int n ,float m);

double gronk(float n ,float m);//可!

void staff(double &rs);

void staff(const double &rs);

void staff(double &&rs);

double x =35.5;

const double y = 32.0;

staff(x);//staff(double &rs)

staff(y);//staff(const double &rs)

staff(x+y);//staff(double &&rs)

C 函式過載詳解

我們在開瓶瓶罐罐的時候,經常會遭遇因各種瓶口規格不同而找不到合適的工具的尷尬。所以有時候就為了開個瓶,家裡要備多種規格的開瓶器。同樣是開個瓶子嘛,何必這麼麻煩?於是有人發明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕鬆開啟。然而開瓶器的問題也會發生到程式設計中。比如我們要編寫乙個函式來求...

C 函式過載詳解

我們在開瓶瓶罐罐的時候,經常會遭遇因各種瓶口規格不同而找不到合適的工具的尷尬。所以有時候就為了開個瓶,家裡要備多種規格的開瓶器。同樣是開個瓶子嘛,何必這麼麻煩?於是有人發明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕鬆開啟。然而開瓶器的問題也會發生到程式設計中。比如我們要編寫乙個函式來求...

C 函式過載 詳解

在實際開發中,有時候我們需要實現幾個功能類似的函式,只是有些細節不同。例如希望交換兩個變數的值,這兩個變數有多種型別,可以是 int float char bool 等,我們需要通過引數把變數的位址傳入函式內部。在c語言中,程式設計師往往需要分別設計出三個不同名的函式,其函式原型與下面類似 void...