Código C++:
Ver originalclass Particula {
private:
string nombre;
float masa; //kg
float posX; // mts
float vel_0; // mts/s
float acel_0; // mts/s^2
todo lo que esté en la parte private queda oculto a todo aquello que no pertenezca a la clase. Es por esta razón que el siguiente código si compila:
Código C++:
Ver originalvoid Particula::setValores(string name, float M, float X, float vel, float acel){
nombre = name;
masa = M;
posX = X;
vel_0 = vel;
acel_0 = acel;
}
Pero el siguiente no:
Código C++:
Ver originalint main(){
float t;
cout << endl << endl;
Particula p1("P_1", 1, 0,0,0);
cout << p1.vel_0;
¿Soluciones?
La más habitual consiste en implementar un getter para recuperar el valor:
Código C++:
Ver originalclass Particula
{
public:
float Velocidad() const
{ return vel_0; }
};
Otra opción pasa por dejar las variables en la parte pública... ahora que si todo en la clase va a ser público entonces queda más limpio declarar la misma como struct que, a diferencia de class, su visibilidad por defecto es public:
Código C++:
Ver originalstruct Particula
{
string nombre;
float masa; //kg
float posX; // mts
float vel_0; // mts/s
float acel_0; // mts/s^2
};
Un saludo