Programación Orientada a Objetos clases y sus metodos

Iniciado por SojatDotar, 8 Febrero 2016, 23:31 PM

0 Miembros y 1 Visitante están viendo este tema.

SojatDotar

Buenas noches, tengo una duda referente a la programación orientada a objeto y sus métodos, por ejemplo tengo definida mi clase

class circulo{
public:
void setX(float);
float getx (float);
void sety (float);
float gety (float);
private:
float x,y;
pero el (x,y) del cirulo lo ingresaria el usuario, tendría que hacer una función que me pida esas coordenadas?más o menos así?? class circulo{
public:
void setX(float);
float getx (float);
void sety (float);
float gety (float);
void pideCoordenadas(float float);
private:
float x,y;
o solo bastará con el set y get de cada coordenada ?ya que tengo entendido que el método set modifica un valor ( da un valor) y el método get(devuelve un valor) otra cosa si tengo un método set no hace falta el constructor ? o siempre tiene que haber un método constructor, independientemente que haya un método set?

void Circulo::setx(float _x)
{
x=_x;

}

float Circulo::getx(float  x)
{

return x;
}
void Circulo::sety(float _y)
{
y=_y;

}

float Circulo::gety(float  y)
{

return y;
}


void Circulo::pideCoordenadas(float x1, float y1)
{

cout<<"Teclee la coordenada"<<endl;
cin>>x>>y;
}

int main () {


Circulo miCirculo;
miCirculo.pideCoordenadas(x,y);


}

Sería así a la hora de implementar la clase y usarla en el main?

Zekkk

Si haces una funcion pideCoordenadas(x, y) o no depende mas que nada de como sea mas legible el codigo. Personalmente, en tu caso especifico me parece que es mas legible si haces no haces una funcion pideCoordenadas y usas tus setters.

En cuanto a lo de constructor, depende basicamente de como planeas que sea usado tu objeto. Si quieres que las coordenadas del circulo las pongan una vez y sean permanentes entonces borra los setters y crea un constructor que las asigne, pero si planeas que las coordenadas del circulos sean modificadas necesitas los setters si o si.   

   

SojatDotar

y Cuál seria la diferencia si hago un setters a hacer una función que pida las coordenadas ?