He programado en C++ durante muchos años y todavía tengo dudas sobre una cosa. En muchos lugares de otro código de la gente que veo algo así como:¿Hay alguna razón para usar esto->
void Classx::memberfunction()
{
this->doSomething();
}
Si necesito para importar/usar ese código, basta con quitar la parte this->, y nunca he visto nada roto o tener algún efectos secundarios.
void Classx::memberfunction()
{
doSomething();
}
Entonces, ¿conoce alguna razón para usar tal construcción?
EDITAR: Tenga en cuenta que estoy hablando de funciones de miembros aquí, no de variables. Entiendo que se puede usar cuando quiera hacer una distinción entre una variable miembro y un parámetro de función.
EDIT: aparente duplicado: Are there any reasons not to use "this" ("Self", "Me", ...)?
Nadie parece mencionar que otra forma de resolver los nombres de los miembros es utilizando el http://en.wikipedia.org/wiki/Scope_resolution_operator. P.ej. Classx :: doSomething(); –
Si se aplica a una función, tiene el efecto de garantizar qué versión de una función posiblemente virtual se invoca, lo que previene el polimorfismo y se usa comúnmente para llamar a un padre de una función anulada. NO es un equivalente seguro de esto-> doSomething(). –
¡Es verdad, había olvidado este caso! Gracias Andy. –