1、建構函式
類的一種特殊的成員函式,它會在每次建立類的物件時執行。建構函式的名稱與類的名稱完全相同,並不會返回任何型別,也不會返回void(無型別)。
作用:初始化物件的資料成員。
①預設建構函式
classshape
void setheight(int
h)
intgetwidth()
intgetheight()
private
:
intwidth;
intheight;
};//
定義shape建構函式
shape::shape(void
)
②帶引數的建構函式
建構函式帶引數,這樣在建立物件時就會給物件建立初始值。
classshape
void setheight(int
h)
intgetwidth()
intgetheight()
private
:
intwidth;
intheight;
};//
定義帶引數的shape建構函式
shape::shape(int w,int
h)
2、拷貝建構函式
拷貝建構函式是一種特殊的建構函式,函式的名稱和類的名稱一致。它的唯一的乙個引數是本型別的乙個引用變數。該引數是const型別,不可變的。
相同型別的類物件是通過拷貝建構函式來完成整個複製過程的。
當類的物件需要拷貝時,拷貝建構函式將會被呼叫。以下情況都會呼叫到拷貝建構函式:
①乙個物件需要通過另外乙個物件進行初始化。案例:
②乙個物件以值傳遞的方式傳入函式體。案例:
③乙個物件以值傳遞的方式從函式返回。
classshape
//拷貝建構函式
shape(const shape &
s)
intgetwidth()
intgetheight()
private
:
intwidth;
intheight;
};
3、析構函式
析構函式的名稱與類的名稱相同,在前面加~作為字首。它不會返回任何值,也不能帶任何引數。它在每次刪除物件時執行,有助於釋放資源。
4、虛函式
在某基類中宣告為virtual並在乙個或多個派生類中被重新定義的成員函式。
作用:實現多型性,通過指向派生類的基類指標或引用,訪問派生類中同名覆蓋成員函式。
C 中的繼承與虛函式各種概念
c 中的繼承與虛函式各種概念 虛繼承與一般繼承 虛繼承和一般的繼承不同,一般的繼承,在目前大多數的 c 編譯器實現的物件模型中,派生類物件會直接包含基類物件的字段。而虛繼承的情況,派生類物件不會直接包含基類物件的字段,而是通過乙個間接的指標去訪問基類物件中的字段。繼承的特性 繼承是物件導向中引入的重...
C 中的繼承與虛函式各種概念
虛繼承與一般繼承 虛繼承和一般的繼承不同,一般的繼承,在目前大多數的c 編譯器實現的物件模型中,派生類物件會直接包含基類物件的字段。而虛繼承的情況,派生類物件不會直接包含基類物件的字段,而是通過乙個間接的指標去訪問基類物件中的字段。繼承的特性 繼承是物件導向中引入的重要特性之一,它的乙個重要的特點就...
C 函式過載的概念
過載的起源 自然語言中,乙個詞可以有許多不同的含義,即該詞被過載了。人們可以通過上下文來判斷該詞到底是哪種含義。詞的過載 可以使語言更加簡練。例如 吃飯 的含義十分廣泛,人們沒有必要每次非得說清楚具體吃什麼不可。別迂腐得象孔已己,說茴香豆的茴字有四種寫法。在c 程式中,可以將語義 功能相似的幾個函式...