C 中建構函式預設引數使用

2021-09-20 12:56:52 字數 980 閱讀 3236

一 **

#include using namespace std;

class box;

box::box(int h,int w,int len)

int box::volume()

int main(){

box box1(1);//不指定第2、3個實參

cout<<"box1's volume: "<二 執行

[root@localhost charpter02]# ./0210

box1's volume: 4

box2's volume: 6

box3's volume:8

三 說明

該實戰中,定義了乙個帶預設引數的建構函式,是在宣告時指定預設引數,而定義時則可以不指定預設引數。定義物件時,可以傳0~3個引數,傳了幾個引數,就替換前面的幾個引數,其餘都使用預設引數。

使用預設引數的好處在於:呼叫建構函式時就算沒有提供引數也不會出錯,且對每乙個物件能有相同的初始化狀態。

不過,應該在宣告建構函式預設值時指定預設引數值,而不能只在定義建構函式時指定預設引數值。如果建構函式中的引數全指定了預設值,則在定義物件時,可給乙個實參或多個實參,也可不給實參。

乙個類中如果定義了全是預設引數的建構函式後,就不能再定義過載建構函式了。

假設box類中定義了3個建構函式

box(int =10,int=3,int=5);

box();

box(int,int);

若有以下定義語句,則會出現問題

box box1;              //是應該呼叫第1個建構函式還是應該呼叫第2個建構函式

box box2(13,18); //是應該呼叫第2個建構函式還是應該呼叫第3個建構函式

C 中關於預設建構函式和預設引數

include using namespace std class time time int s,int h 10,int m 52 time int h,int m,int s hour h minute m sec s 過載建構函式,執行時會根據形參的不同,自動匹配呼叫 類的初始化資料成員的另...

2 9 C 使用預設引數的建構函式

總結 預設引數的建構函式,其預設引數必須置於引數列表的結尾。設計類的建構函式的時候最好不要同時是用建構函式的過載和帶引數的建構函式。我們可以想象乙個這樣的場景 某一天書店整理庫存,發現了一些非常老的書,為了盡快清空庫存,店主想了一下,決定開展乙個大甩賣活動,所有的這些書全部以五美元的 此時如果需要盡...

C 中建構函式的引數預設的詳解

c 中建構函式的引數預設的詳解 前言 建構函式中引數的值既可以通過實參傳遞,也可以指定為某些預設值,即如果使用者不指定實參值,編譯系統就使形參取預設值。在建構函式中也可以採用這樣的方法來實現初始化。include 程式設計客棧ostream using namespace std class a i...