C++ pass pointer by reference and assign default value
c++, default-value, pointers, reference
Solution
The error message says it all: you are passing an integer instead of a reference-to-a-pointer-to-SomeType. To do what you want, you can use a pointer-to-a-pointer-to-SomeType:
void myFunc(SomeType** var=NULL);
void MyClass::myFunc(SomeType** var){
if(var!=NULL && *var!=NULL)
(**var)=(*someOtherPointer);
if(var!=NULL && someCondition)
*var=NULL;
}
Problem
I would like to pass a pointer by reference to a function, such that i can actually change the address the passed pointer is pointing to and i'd like to assign this argument a default value. something like this: in the declaration ``` void myFunc(SomeType* &var=NULL); ``` and the definition: ``` void MyClass::myFunc(SomeType* &var){ if(var!=NULL) (*var)=(*someOtherPointer); if(someCondition) var=NULL; } ``` such that a callee can decide whether he wants to call the function with one argument or without argument. And sucht that if he decides to pass an argument, and someCondition holds, the passed pointer will point to NULL afterwards however - if i try to do it like this i get a: Error C2440: 'default argument': 'int' cannot be conveted to 'SomeType *&' Thanks for the help!