C 函式過載與類的多型

2021-09-26 23:22:17 字數 3145 閱讀 8701

函式過載是class中函式復用的方式之一,即在乙個class中可以通過函式的引數個數引數型別的不同定義多個同名函式,

呼叫時再通過函式的引數加以區分。

附加:c++運算子過載 】

函式過載:

using system;

namespace day0908._0907

public void func1(double a)

//public int func1(int a) //error!

public void func1()

/*如果是引數型別不同的函式過載,可以使用函式的泛型再次簡化***/

/*例項:交換兩個變數(型別未知)*/

public void swap(ref t a,ref t b)

static void main0()

\n",a,d);}}

}

當class中函式只是引數型別不同,可採用"泛型函式"實現**復用(見上述示例);

運算子過載(實現"字串*整數=整數個字串")

python中:data = "a"*30c#中模擬:string data = new str("a")*30;

運算子過載注意事項:

/*使用者定義的運算子「str.operator *(str, int)」必須宣告為 static 和 public*/

例項:

class str

public str(string data)

/*二元運算子的引數之一必須是包含型別*/

/*使用者定義的運算子「str.operator *(str, int)」必須宣告為 static 和 public*/

public static string operator* (str a,int b)

return temp.tostring();}}

多型:"使用父類宣告子類" 即檢視子類是否有許可權替換自己

overload(過載) 只是乙個名詞,表示同乙個class中同名函式之間的關係;

override(重寫且覆蓋) :是乙個修飾符,也是多型的一種表示形式(用於重寫基類中的同名虛函式);

new(重寫不覆蓋):與override不同的是,使用基類初始化派生類時,得到的例項呼叫的仍是基類的同名函式;

多型:派生類的例項可以直接賦予個基類變數(可以使用基類型別將所有派生的子類例項構建陣列【此時基類被重寫】)測試用例:

虛基類(虛函式):內部變數可以初始化,還可以定義虛函式的實現(可以包含字段【只宣告未賦值的變數】);

抽象類(抽象函式):內部變數可以初始化,單數無法定義抽象函式的實現(可以包含字段);

介面:(支援多繼承!)

1.介面在派生類中的實現必須新增public!2. 不再使用class,直接使用inte***ce name{}定義,介面一切都是公開的;(內部成員不用使用許可權修飾符)3. 抽象類和介面因為沒了方法的實現,所以強制要求派生部分實現抽象基類/介面中的所有未宣告部分;4. *不再允許包含字段,但可以使用get,set處理變數;

抽象類例項:

using system;

using system.collections;

namespace day0908._0908

public abstract void shop();

}public class shoemarket : market

}public class clothesmarket : market

}class run0

;ms[0].goods = "xx";

ms[0].shop();}}

}

介面示例:

using system;

namespace day0908._0908

void func1();

}inte***ce demo4 : demo3

class demo5 : demo4

}public void func2()

public void func1()

public void own()

}class run}}

C C 類的繼承 多型與虛函式 過載

物件導向的程式設計主要目的是提供可重複利用的 類的繼承也是 重用的一種方式。從已有的類 基類 派生出新的類,派生類 繼承了原有類的特性,同時在其基礎上進行擴充套件增加功能。1.繼承 派生類可以訪問基類的公有成員 派生類不能直接訪問基類的私有成員,必須通過基類的公有函式間接訪問私有成員 派生類的建構函...

C 多型 過載 函式隱藏

1.多型 派生類對基類的virtual方法進行覆蓋。注意 此時的函式原型與基類保持一致,即同名同引數型別。特徵是 1 不同的範圍 分別位於派生類與基類 2 函式名字相同 3 引數相同 4 基類函式必須有virtual關鍵字。5 動態編譯。基類 子類 執行 結果 結論 只有virtual 即多型 才會...

c 函式過載 多型特性

在同乙個作用域內,可以宣告幾個功能類似的同名函式,但是這些同名函式的形式引數 指引數的個數 型別或者順序 必須不同。不能僅通過返回型別的不同來過載函式。當您呼叫乙個過載函式或過載運算子時,編譯器通過把您所使用的引數型別與定義中的引數型別進行比較,決定選用最合適的定義。選擇最合適的過載函式或過載運算子...