我想通过引用传递一个指针,这样我实际上可以更改传递指针指向的地址,并且想要将此参数指定为默认值值。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