我想通過引用傳遞一個指針,這樣我實際上可以更改傳遞指針指向的地址,並且想要將此參數指定爲默認值值。C++通過引用傳遞指針並分配默認值
是這樣的:
在聲明void myFunc(SomeType* &var=NULL);
和定義
:
void MyClass::myFunc(SomeType* &var){
if(var!=NULL)
(*var)=(*someOtherPointer);
if(someCondition)
var=NULL;
}
這樣一個被叫方可以決定他是否要調用的函數用一個參數或沒有爭論。而sucht,如果他決定來傳遞參數,並someCondition持有,傳遞的指針會指向然而事後NULL
- 如果我嘗試做這樣我得到一個:
錯誤C2440:「默認參數':'int'不能被轉換爲'SomeType * &'
感謝您的幫助!
除非「someCondition」包含「var!= NULL」,否則您只接受解除引用NULL指針的答案。可能不是你想要的。 – imaginaryboy 2009-12-02 05:06:16
另外,請注意使用(** var)=(* someOtherPointer)實際上會執行對象副本。如果你只是想做一個指針副本,你可能想要(* var)=(someOtherPointer)。 – Thought 2013-12-24 00:39:07