在C++中,可以為參數指定默認值。在函數調用時沒有指定與形參相對應的實參時, 就自動使用默認參數。
默認參數的語法與使用:
(1)在函數聲明或定義時,直接對參數賦值。這就是默認參數;
注意:
(1)默認參數只可在函數聲明中設定一次。只有在沒有函數聲明時,才可以在函數定義中設定。(#add ,此句意為存在函數聲明和定義兩部分的時候。驗證表明有這個限制,可以隨便,但出於規范,在聲明中指定)
如果一個參數設定了缺省值時,其右邊的參數都要有缺省值。(#add 這是定義時,類的成員函數的參數表在聲明時默認參數位於參數表右部, 使用時該怎樣待總結)
(3)默認參數調用時,則遵循參數調用順序,自左到右逐個調用。這一點要與第(2)分清楚,不要混淆。(#add 神馬意思啊? 暫理解為兩個默認參數之間的參數必須賦缺省值, 錯,意為調用函數時,從左至右第一個實參即為第一個形參的實參,依此類推)
(4)默認值可以是全局變量、全局常量,甚至是一個函數。但不可以是局部變量。因為默認參數的調用是在編譯時確定的,而局部變量位置與默認值在編譯時無法確定。
最典型的就是在帶默認參數的構造函數: