函式過載 overload ,函式覆蓋,函式隱藏

2021-05-23 13:33:45 字數 845 閱讀 1747

一:函式過載(overload):

1.發生條件:同乙個類中的成員函式之間;任意兩個函式之間;

2.形式:函式名稱相同,但引數型別不同,或引數的個數不同;

3.備註:以下兩種情形不構成函式過載:

a.int fun1(int a,...);

void fun2(int a,...);           //函式名稱相同,引數型別相同,引數個數相同,只有函式返回值型別不同

b.int fun1(int a);

int fun2(int a,int b=0);     //函式的引數列表中,引數存在預設值

4.特殊地:在類定義中,成員函式型別是否為const,也構成函式的過載,如:

int fun1(int a);

int fun2(int a) const;

此時,類的const物件,只呼叫const成員函式;而非const物件,在此時函式過載的情形下,會呼叫非const成員函式;

二:函式覆蓋:

1.發生條件:發生於子類與父類之間,且函式為虛函式(virtual);

2.形式:函式的返回值,函式名稱,函式的形參列表完成相同;(即:函式宣告完全相同);

3.作用:與實現oop的多型(polymorphism)有關;

三:函式隱藏:

1.發生條件:發生於子類與父類之間,且函式不是虛函式;

2.形式:只要函式名稱相同,而不論函式的形參個數是否相同,函式形參的型別是否相同,函式的返回值是否相同;

3.備註:子類的函式,要呼叫父類被隱藏的函式時,可以在子類函式的初始化區域進行,如:

void child::fun1(int a) : fun1()   //fun1()為父類中的函式

函式過載 overload

過載的定義及特點 在同乙個類中,允許存在乙個以上的同名函式,只要他們的引數個數或者引數型別不同 不僅指兩個過載方法的引數型別不同,還指相同引數擁有不同的引數型別順序 就構成過載。過載只和引數列表有關係,跟返回值型別無關,即返回值型別不能作為過載的條件。public void test int num...

java函式過載 overload

什麼時候用過載。當定義的功能相同,但參與運算的未知內容不同。那麼,這是就定義乙個函式名稱,以表示其功能,方便閱讀,而通過引數列表的不同來區分多個同名函式。class functionoverload 定義乙個加法運算,獲取兩個整數的和。思路 1,明確結果。int。兩個整數的和 2,有未知數嗎?有。兩...

方法過載Overload

方法過載 overload 所謂方法過載 方法名字相同,方法引數的個數,型別,次序不同。關於方法過載要注意三點 1.引數次序不同,也構成方法過載 2.方法返回型別不同,不構成方法過載 3.構造方法過載,是方法過載最常見的形式 靜態屬性和方法 靜態的屬於類而不屬於物件,即可以使用物件來訪問也可以使用類...