在C 的程式內可以定義多個同名的函式,稱為什麼的呢

時間 2021-09-04 03:24:51

1樓:匿名使用者

同名函式最基本的有兩種情況:

1.函式過載,如

void fuc(int a);和void fuc(int a , int b);就可以同時存在

過載函式是函式的一種特殊情況,為方便使用,c++允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形式引數(指引數的個數、型別或者順序)必須不同,也就是說用同一個運算子完成不同的運算功能。這就是過載函式。過載函式常用來實現功能類似而所處理的資料型別不同的問題。

2.分屬不同的名稱空間

如class a ;

class b ;

這兩個函式同名卻可以共存,因為第一個屬於名稱空間a,第二個屬於b

2樓:匿名使用者

有多種情況:

1.函式過載,如

void fuc(int a);和void fuc(int a , int b);就可以同時存在

有關函式過載的問題可以看這裡

2.分屬不同的名稱空間

如class a ;

class b ;

這兩個函式同名卻可以共存,因為第一個屬於名稱空間a,第二個屬於b這是兩種基本情況

3樓:匿名使用者

他們的引數個數或者型別肯定不一樣把,呼叫的時候會根據引數進行呼叫的。

就是過載函式= =

4樓:

同一類裡面函式名相同 ,引數不同叫過載

父子類裡面的成員函式名相同,引數名也相同叫覆蓋

c++多重繼承,我這裡幾個函式名相同的函式,引數個數不同為什麼同名覆蓋而不是過載?

5樓:匿名使用者

函式過載是

copy是根據函式的引數列表區分函式的版本,返回值不同是不能區分的。

比如 int fun( int a,int b);

在編譯的時候,編譯器編譯函式,生成一個類似"_fun_int_int"的名稱放在庫中,以便程式呼叫的時候使用。

如果你想過載void fun( int a,int b);

生成的函式名稱也是"_fun_int_int"

函式在庫中的名稱是唯一的,就像你在程式中定義變數一樣。

這就算是重定義吧(姑且這麼說),這時編譯器該呼叫哪個函式?

c++裡函式的名字可以重複嗎?比如有兩個函式,每個函式定義時有兩個變數,但是其中有一個變數名字不同行嗎

6樓:陸美富

在一個類中,可以重複。 叫函式過載。但兩個同名函式的引數,或個數要不一樣。

7樓:小飛花兒的憂傷

函式引數型別不能完全一樣,改形參名字沒有意義,還是一樣的

c++中兩個函式函式名相同,引數型別和引數個數也相同,但是函式型別不同,那它們是過載函式嗎?

8樓:匿名使用者

函式過載只看引數個數和型別 所以如果只是返回值相同的函式就不是過載函式了

9樓:莊政警

這樣不是過載。

函式過載要求函式的引數個數不同或者引數型別不同。

因為呼叫函式的時候無法確認函式的返回型別,所以僅返回型別不同的函式都可以匹配,這樣就造成二義性,所以僅僅是返回型別不同是不能過載的,

比如有int f(int a)

float f(int a)

int main()

10樓:匿名使用者

函式過載是是根據函式的引數列表區分函式的版本,返回值不同是不能區分的。

比如 int fun( int a,int b);

在編譯的時候,編譯器編譯函式,生成一個類似"_fun_int_int"的名稱放在庫中,以便程式呼叫的時候使用。

如果你想過載void fun( int a,int b);

生成的函式名稱也是"_fun_int_int"

函式在庫中的名稱是唯一的,就像你在程式中定義變數一樣。

這就算是重定義吧(姑且這麼說),這時編譯器該呼叫哪個函式?

11樓:

不是過載函式,編譯器應該會報錯。

為什麼c++語言不允許在一個函式的定義中再定義另一個函式? 舉個例子說明,謝謝

12樓:

//標頭檔案test.h

void f();

//原始檔test.cpp

#include"test.h"

void f()

提示找不到函式g().

一般函式的宣告與定義放

在不同檔案中,宣告的標頭檔案中只有巢狀定義的外層函式,巢狀在函式f中的函式是找不著的。。。

13樓:匿名使用者

c++中允許函式的巢狀呼叫,但不允許函式的巢狀定義,例如:

#include

int swpint(int *a,int *b)void main()

swpint(&e,&f);

cout<

}error c2601: 'swpint' : local function definitions are illegal

14樓:_白龍子

編語言的人就這麼設計啊,你如果會編的話自己設計一個語言就能作到在一個函式的定義中再定義另一個函式了

c++:函式中變數名不能和函式名有重複?他倆一個是函式名一個是變數都不是一個東西為什麼不能重名呢?

15樓:匿名使用者

首先你要相信c/c++的語法規定肯定是有原因的,這相當於生活中的規矩,無規矩酒不成方圓。我舉個簡單例子說明你這種情況。

void fun(void)

//希望對你有用!!

C語言可以在不同的原始檔中定義相同名字的全域性變數嗎

山東路雲 拿vc試啊,剛花了幾分鐘實測了下,不加static,不管是否初始化,都是在連結的時候報重定義錯誤,如果加了static,不管是否初始化,編譯連結都沒問題,只是不同的原始檔佔用不同的記憶體,也就是說已經是兩個不同的static全域性變數了。 可以,因這個不是語法錯誤,一般是邏輯錯誤!而這種錯...

c語言巨集定義及多個檔案的問題,c語言多個檔案都用到同一個巨集和結構,那麼巨集定義和結構定義應該放在哪個檔案合適呢?

小白範 c語言編譯器gcc編譯過程 先分檔案編譯,每個檔案編譯成一個目標程式。最後將目標程式 連結 在一起,形成可執行程式。注意 只編譯.c檔案,不編譯.h標頭檔案。在編譯ma.c時,先將標頭檔案的內容拷貝過來,變成 ifndef type define type 2 endif void p vo...

C 中類怎樣定義,使用,C 中如果要用的類定義在使用之後,該怎樣宣告?

類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為 方法 實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者 幹什麼 而實現部分是告訴使用者 怎麼幹 類的一般定義格式如下 class 類...