전달 된 포인터가 가리키는 주소를 실제로 변경할 수 있도록 함수에 대한 참조로 포인터를 전달하고 싶습니다.이 인수를 기본값으로 할당하고 싶습니다. 값. 이 같은C++에서 참조로 포인터 전달 및 기본값 할당
뭔가 : 선언
void myFunc(SomeType* &var=NULL);
과 정의에
: 피 호출자 그는 하나 개의 인수로 함수를 호출하고 싶어 여부를 결정할 수 있습니다
void MyClass::myFunc(SomeType* &var){
if(var!=NULL)
(*var)=(*someOtherPointer);
if(someCondition)
var=NULL;
}
하도록하거나 논증없이. 그리고 그가 인수를 전달하기로 결정하고, someCondition가 보유하고있는 경우, 전달 된 포인터가 그러나 이후
을 NULL로 가리 킵니다 것을 sucht -이 같은 그것을하려고하면 내가 얻을 :
오류 C2440 : '기본 인수 ':'int '를'SomeType * & '
도와 주셔서 감사합니다.
"someCondition"에 "var! = NULL"이 포함되어 있지 않으면 방금 NULL 포인터를 참조 해제하는 대답을 수락했습니다. 아마도 당신이 원하는 것이 아니 겠지요. – imaginaryboy
또한 (** var) = (* someOtherPointer)를 사용하면 실제로 객체 복사가 수행됩니다. 포인터 복사 만하려는 경우 (* var) = (someOtherPointer)를 원할 수 있습니다. – Thought