Me gustaría pasar un puntero por referencia a una función, de modo que realmente puedo cambiar la dirección a la que apunta el puntero pasado y me gustaría asignar este argumento por defecto valor.C++ Pase el puntero por referencia y asigne el valor predeterminado
algo como esto:
en la declaración
void myFunc(SomeType* &var=NULL);
y la definición:
void MyClass::myFunc(SomeType* &var){
if(var!=NULL)
(*var)=(*someOtherPointer);
if(someCondition)
var=NULL;
}
tal manera que un usuario llamado puede decidir si quiere llamar a la función con un argumento o sin argumento Y sucht que si decide pasar un argumento, y somecondition sostiene, el puntero pasado apuntará a NULL después
sin embargo - si trato de hacerlo de esta manera puedo obtener un:
error C2440: 'default argumento ':' int 'no puede ser enviado a' SomeType * & '
¡Gracias por la ayuda!
A menos que "someCondition" incluya "var! = NULL", acaba de aceptar una respuesta que quita referencias a un puntero NULL. Probablemente no sea lo que querías. – imaginaryboy
Además, tenga en cuenta que el uso (** var) = (* someOtherPointer) realmente hará una copia de objeto. Si solo pretendía hacer una copia de puntero, probablemente querría (* var) = (algún otro puntero). – Thought