Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/09/2018, 11:01
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: Cual es el error en mi clase?

Hola:


El primer error de la clase Ejemplo te salta porque tienes la cláusula const en el método int getDatoIncrementado() const. Esto protege a los datos para que no puedan ser modificados, y al usar el operador ++ estas tratando de incrementar la variable dato.

Si lo quitas, no tendrás problemas:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. class Ejemplo
  4. {
  5. public:
  6.     Ejemplo(int y = 10): dato(y) {}
  7.     int getDatoIncrementado()
  8.     {
  9.         return ++dato;
  10.     }
  11. private:
  12.     int dato;
  13. };
  14.  
  15.  
  16. int main()
  17. {
  18.     Ejemplo algo(3);
  19.     Ejemplo algo2;
  20.     std::cout<<algo.getDatoIncrementado()<<"\n";
  21.     std::cout<<algo2.getDatoIncrementado()<<"\n";
  22.     return 0;
  23. }



Sobre la segunda cuestión, pues sí. Puedes definir tantos constructores como necesites dentro de la clase.
__________________
Mi calculadora en Qt