Este post ya es un poco viejo pero quiero aclarar algo, no aconsejo que uses un método de esa forma.
Si bien es posible realizar un méto que hace cambios en un atributo y lo retorna, desde mi punto de vista lo más correcto sería algo como:
Código C++:
Ver originalclass Ejemplo
{
public:
explicit Ejemplo(const int y = 10): dato(y) {};
int getDato() const {
return dato;
};
void incrementarDato(){
++dato;
};
protected:
int dato;
};
Hay cambios muy pequeños pero creo que de esta forma queda más claro que es lo que hace cada cosa, dividimos las responsabilidades, y el cambio que más subjetivo es el de private->protected, a mi personalmente no me gusta usar private para casi nada o en casos muuuuy específicos, pero si un programador que viene después que tu quiere extender tu clase va a tener problemas si no puede acceder esos atributos.