1. 程式人生 > >c++預設實參

c++預設實參

雖然既可以在函式宣告也可以在函式定義中指定預設實參,但是若是在函式的定義中指定預設 實參,那麼只有在該函式定義的原始檔中呼叫該函式時,預設實參才是有效的。這句話什麼意思呢? 

舉個例子說明吧, 
  1. //CPerson.h
  2. int initPerson(int old, string name, string race);//沒有在這裡指定預設實參
  3. //CPerson.cpp
  4. #include "CPerson.h"
  5. ...  
  6. //int initPerson(int old, string name = "二毛", string race = "漢"){...}
  7. //或者
  8. int initPerson(int
     old, string name = "二毛", string race = "漢");//注意宣告可以多次,上面這種也可以
  9. int initPerson(int old, string name, string race){...}  
  10. void func()  
  11. {  
  12.    initPerson(3); //可以,預設引數有效
  13. }  
  14. //other.cpp
  15. #include "CPerson.h"
  16. ...  
  17. void funcA()  
  18. {  
  19.    initPerson(3);//編譯錯誤,預設實參無效
  20. }   

預設實參可以是任何適當型別的表示式,例如常量,函式呼叫,全域性變數等。在呼叫該函式時會求解該表示式。