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#include <iostream>
class Ejemplo
{
public:
Ejemplo(int y = 10): dato(y) {}
int getDatoIncrementado()
{
return ++dato;
}
private:
int dato;
};
int main()
{
Ejemplo algo(3);
Ejemplo algo2;
std::cout<<algo.getDatoIncrementado()<<"\n";
std::cout<<algo2.getDatoIncrementado()<<"\n";
return 0;
}
Sobre la segunda cuestión, pues sí. Puedes definir tantos constructores como necesites dentro de la clase.