C 物件導向程式設計 知識筆記(二)

2021-09-29 13:15:57 字數 1562 閱讀 5176

**示例:

#include

using namespace std;

const

float pi =

3.14159

;//定義常變數

intmain()

執行程式輸出3.14159

const可以使用在主函式的外部,其意義為定義乙個變數不過這個變數是無法改變的常變數。

c語言中也存在類似的函式 define 但兩者存在不同。

2.const與define的比較:

舉例:

#define pi 3014159

const float pi = 3.14159;

1.使用define定義後僅僅是在編譯時將字串pi置換成3.14159,執行後程式中的所有的pi都被3.14159代替。(使用define定義賦值後進行計算時容易產生錯誤,特別注意)

2.const則是對float 型別的變數 pi 進行賦值,把pi變為程式中乙個無法改變值的常變數。

3.函式過載:

c++允許在同一作用域中使用相同的函式名定義不同的函式(c語言中不允許這樣做),但需要這些函式引數個數或者引數型別不相同,如此實現不同的功能。

函式過載的實質就是函式名的復用。

#include

using namespace std;

int hai (

int a,

int b)

//定義第乙個函式命名為 hai

float hai (

float a,

float b)

//定義第二個函式定義為 hai

intmain()

在程式中第乙個函式的變數為int型第二個函式的變數為float型,在主函式中呼叫定義的函式hai時程式根據輸入的a,b的值進行呼叫,若輸入的為float型別則呼叫第二個函式,若為int型則呼叫第乙個函式。

函式過載的條件:

1函式名相同。

2函式的引數型別不同 或 函式引數的個數不同。(引數個數和引數型別只能有乙個不同,若全不相同則報錯)

4.函式模板:

上面一條函式的過載說的是關於函式名的復用而對於函式模板則是對於變數型別的復用。

**使用格式: **

template
例如:
#include

using namespace std;

template

t hai (t a,t b)

intmain()

執行結果:

以上程式設定了乙個變數型別 t 不過這個t的實際型別無法確定,因此t的實際型別需要根據實際的引數型別確定。因此使用template函式模板的話可以實現對於用單個函式處理多種型別的資料。

C 物件導向程式設計筆記(二)

c 物件導向程式設計 二 一 過載與覆蓋 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。覆蓋是指派生類函式覆蓋基類函式,特徵是 1 不同的範圍 分別位於派生類與基類 2 函式名字相同 3 引數相同 4 基類函式必須有virtu...

c 物件導向程式設計(二)

一 裝箱與拆箱 裝箱轉換允許將 值型別 隱式轉換為 引用型別 存在下列裝箱轉換 從任何 值型別 包括任何 列舉型別 到型別object。從任何 值型別 包括任何 列舉型別 到型別system.valuetype。從任何 值型別 到 值型別 實現的任何 介面型別 從任何 列舉型別 到system.en...

C 物件導向入門知識(二)

泛型類 定義 泛型類就是乙個模子,裝入型別的材料,可以塑造出想要的產品。class cage public void putin t pet else var dogcage new cage 1 dogcage.putin new dog a 泛型方法 定義 泛型方法就是方法的模型,給定具體的型別...