Hola a todo y muchas gracias de antemano por la ayuda.
Estoy tratando de hacer un programa que me calcule el area de un rectángulo.
He creado dos ficheros, una cabecera hpp y el main.cpp pero no hago más que recibir el siguiente error y no sé por qué:
||=== Build: Debug in Rectangulo (compiler: GNU GCC Compiler) ===|
main.cpp|41|error: 'MiRectangulo' is not a class or namespace|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
||=== Run: Debug in Rectangulo (compiler: GNU GCC Compiler) ===|
*********************************************************************
Mi fichero Rectangulo.hpp
*********************************************************************
Mi fichero main.cpp
******************************************************
Alguien podría por favor explicarme que está pasando?
Mil gracias por su ayuda.
Vale, ya encontré el problema.
Llamé a la función miembro 'ObtenerArea' de la clase 'Rectangulo' como si de una implementación se tratara.
Mal:
Area = MiRectangulo::ObtenerArea();
Bien:
Area = MiRectangulo.ObtenerArea();
Que malo es ser novato y que bueno es descansar un rato cuando no consigues avanzar.
Gracias a todos!!!
MOD: No hacer doble post.
Estoy tratando de hacer un programa que me calcule el area de un rectángulo.
He creado dos ficheros, una cabecera hpp y el main.cpp pero no hago más que recibir el siguiente error y no sé por qué:
||=== Build: Debug in Rectangulo (compiler: GNU GCC Compiler) ===|
main.cpp|41|error: 'MiRectangulo' is not a class or namespace|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
||=== Run: Debug in Rectangulo (compiler: GNU GCC Compiler) ===|
*********************************************************************
Mi fichero Rectangulo.hpp
Código (cpp) [Seleccionar]
#ifndef RECTANGULO_HPP_INCLUDED
#define RECTANGULO_HPP_INCLUDED
#include <iostream>
class Punto // Contiene las coordenadas 'X' e 'Y'
{
private:
int suX;
int suY;
public:
void ConfigurarX(int x) {suX = x;}
void ConfigurarY(int y) {suY = y;}
int ObtenerX() const { return suX;}
int ObtenerY() const { return suY;}
};
class Rectangulo
{
public:
Rectangulo (int superior, int izquierdo, int inferior, int derecho);
~Rectangulo () {}
int ObtenerSuperior() const { return suSuperior;}
int ObtenerIzquierdo() const { return suIzquierdo;}
int ObtenerInferior() const { return suInferior;}
int ObtenerDerecho() const { return suDerecho;}
void ConfigurarSuperior (int superior) { suSuperior = superior; }
void ConfigurarIzquierdo (int izquierdo) { suIzquierdo = izquierdo; }
void ConfigurarInferior (int inferior) { suInferior = inferior; }
void ConfigurarDerecho (int derecho) { suDerecho = derecho; }
Punto ObtenerSuperiorIzquierdo() const { return suSuperiorIzquierdo;}
Punto ObtenerInferiorIzquierdo() const { return suInferiorIzquierdo;}
Punto ObtenerSuperiorDerecho() const { return suSuperiorDerecho;}
Punto ObtenerInferiorDerecho() const { return suInferiorDerecho;}
void ConfigurarSuperiorIzquierdo(Punto Localizacion) { suSuperiorIzquierdo = Localizacion;}
void ConfigurarInferiorIzquierdo(Punto Localizacion) { suInferiorIzquierdo = Localizacion;}
void ConfigurarSuperiorDerecho(Punto Localizacion) { suSuperiorDerecho = Localizacion;}
void ConfigurarInferiorDerecho(Punto Localizacion) { suInferiorDerecho = Localizacion;}
int ObtenerArea() const;
private:
Punto suSuperiorIzquierdo;
Punto suSuperiorDerecho;
Punto suInferiorIzquierdo;
Punto suInferiorDerecho;
int suSuperior;
int suIzquierdo;
int suInferior;
int suDerecho;
};
#endif // RECTANGULO_HPP_INCLUDED
*********************************************************************
Mi fichero main.cpp
Código (cpp) [Seleccionar]
#include "Rectangulo.hpp"
//#include <iostream>
using namespace std;
Rectangulo::Rectangulo(int superior, int izquierdo, int inferior, int derecho)
{
suSuperior = superior;
suIzquierdo = izquierdo;
suInferior = inferior;
suDerecho = derecho;
suSuperiorIzquierdo.ConfigurarX(izquierdo); //Punto 1
suSuperiorIzquierdo.ConfigurarY(superior);
suSuperiorDerecho.ConfigurarX(derecho); //Punto 2
suSuperiorDerecho.ConfigurarY(superior);
suInferiorIzquierdo.ConfigurarX(izquierdo); //Punto 3
suInferiorIzquierdo.ConfigurarY(inferior);
suInferiorDerecho.ConfigurarX(derecho); //Punto 4
suInferiorDerecho.ConfigurarY(inferior);
}
int Rectangulo::ObtenerArea() const
{
int Ancho = suDerecho-suIzquierdo;
int Alto = suSuperior-suInferior;
return (Ancho * Alto);
}
int main()
{
Rectangulo MiRectangulo (100,20,50,80);
int Area;
Area = MiRectangulo::ObtenerArea();
cout << "El rectangulo tiene un area de " << Area << " mtros, cuadrados." << endl;
return 0;
}
******************************************************
Alguien podría por favor explicarme que está pasando?
Mil gracias por su ayuda.
Vale, ya encontré el problema.
Llamé a la función miembro 'ObtenerArea' de la clase 'Rectangulo' como si de una implementación se tratara.
Mal:
Area = MiRectangulo::ObtenerArea();
Bien:
Area = MiRectangulo.ObtenerArea();
Que malo es ser novato y que bueno es descansar un rato cuando no consigues avanzar.
Gracias a todos!!!
MOD: No hacer doble post.