建構函式的引數預設

2021-06-18 10:40:02 字數 582 閱讀 9907

建構函式中引數的值既可以通過實參傳遞,也可以指定為某些預設值,即如果使用者不指定實參值,編譯系統就使形參取預設值。在建構函式中也可以採用這樣的方法來實現初始化。

#include

using namespace std;

class a

;int main( )

程式執行結果為

4 0可以看到: 在建構函式中使用預設引數是方便而有效的,它提供了建立物件時的多種選擇,它的作用相當於好幾個過載的建構函式。

它的好處是: 即使在呼叫建構函式時沒有提供實參值,不僅不會出錯,而且還確保按照預設的引數值對物件進行初始化。尤其在希望對每乙個物件都有同樣的初始化狀況時用這種方法更為方便。

關於建構函式預設值的幾點說明:

應該在宣告建構函式時指定預設值,而不能只在定義建構函式時指定預設值。

程式第5行在宣告建構函式時,形參名可以省略。

如果建構函式的全部引數都指定了預設值,則在定義物件時可以給乙個或幾個實參,也可以不給出實參。

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

預設引數的建構函式和拷貝建構函式

看到網路上面一句描述 在乙個類中定義了全部是預設引數的建構函式的後,不能再定義過載建構函式 感覺會有歧義,其實看怎麼理解了。應該還是可以定義拷貝建構函式或更多引數的建構函式的,只要在建構函式的選擇上不會有二義性就可以 如下 include class test int getj int getp t...

預設構造引數

c 中可以在函式宣告時為引數提供乙個預設值,當函式呼叫時沒有指定這個引數的值,編譯器會自動用預設值代替 include 宣告時指定預設引數值,沒傳參是使用預設值 int mul int a 10 int main 只有 引數列表後面的部分引數才可有使用提供的預設引數值 一旦在呼叫中使用了預設引數,那...

C 建構函式預設的引數宣告

c 函式的預設引數指的是在函式宣告或者定義時給形式引數指定預設值,從而在呼叫引數時可以少寫引數,少掉的引數用預設值代替。lz的display 函式的 看起來似乎是可以有s2和s3兩個預設引數,那麼此函式的宣告寫法就是 void display string s1,string s2 string s...