Buenas, ando por aca empezando con POO y tengo una duda con el siguente ejercicio:
CitarConstruir una clase llamada Rectangulo que tenga miem-
bros de datos en número de precisión doble llamados largo
y ancho. La clase deberá tener una función miembro llamada
perímetros() y area() para calcular el perímetro y el área de
un rectángulo, una función miembro llamada getDatos() que
despliegue el largo, ancho, perímetro y área de un rectángulo.
Por Ahora ya tengo lo que es el Area y el el pereimetro de la siguiente manera pero como hago la funcion miembro getDatos()... porque en cada funcion me devuelve un valor especifico, pero cuando tengo que mostrar todos esos datos como seria la sintaxis del metodo.... Muchas gracias a quien pueda orientarme....
#include <iostream>
using namespace std;
class Rectangulo{
double Ancho, Largo; // atributos
public:
Rectangulo(double An, double La); // Constructor
// Metodos
void set_Ancho(double An);
void set_Largo(double La);
double get_Area();
double get_Perimetro();
};
// Implementacion de metodos
Rectangulo::Rectangulo(double An, double La){ Ancho = An;
Largo = La;
}
void Rectangulo::set_Ancho(double An){ Ancho = An;}
void Rectangulo::set_Largo(double La){ Largo = La;}
double Rectangulo::get_Area(){ return Ancho*Largo;}
double Rectangulo::get_Perimetro(){ return (2*Ancho)+(2*Largo);}
int main()
{
Rectangulo rectangulo(5,7);
cout << " AREA: " << rectangulo.get_Area() << endl;
cout << " PERIM: " << rectangulo.get_Perimetro() << endl;
return 0;
}
Sin ir más lejos, puedes copiar los cout del main en el nuevo método.
Salvo que lo que quieras sea retornar una cadena con todos los datos. En ese caso, algo así serviría:
double Rectangulo::getDatos(){
return "Ancho: " + to_string(Ancho) + "\n Largo: " + to_string(Largo);
}
Ya haces lo que veas en la función.
Gracias ivancea96 hice lo primero que me dijiste asi:
double Rectangulo::get_Datos(){ cout << " Ancho: " << Ancho << endl;
cout << " Largo: " << Largo << endl;
cout << " Area: " << get_Area() << endl;
cout << " Perimetro: " << get_Perimetro() << endl;
}
Ten en cuenta que así la función será void, no double.
Listo, si tienes toda la razon, ya lo corregi....Muchas gracias.. ;-)