Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error con tipos definidos por mi en un namespace

Estas en el tema de Error con tipos definidos por mi en un namespace en el foro de C/C++ en Foros del Web. Bueno, estoy creando una librería para crear GUI's sobre SFML, para que sea compatible con esta librería... y tengo algunos errores que no entiendo! Color.h ...
  #1 (permalink)  
Antiguo 28/02/2013, 13:25
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Error con tipos definidos por mi en un namespace

Bueno, estoy creando una librería para crear GUI's sobre SFML, para que sea compatible con esta librería... y tengo algunos errores que no entiendo!

Color.h
Código C++:
Ver original
  1. #ifndef __COLOR_H__
  2. #define __COLOR_H__
  3.  
  4. namespace reet
  5. {
  6.     class Color
  7.     {
  8.  
  9.     public:
  10.  
  11.         Color();
  12.         ~Color();
  13.  
  14.     protected:
  15.  
  16.     private:
  17.  
  18.         int numero;
  19.  
  20.     };
  21.  
  22.     extern Color GRIS;
  23. }
  24.  
  25. #endif

Texto.h

Código C++:
Ver original
  1. #ifndef __TEXTO_H__
  2. #define __TEXTO_H__
  3.  
  4. namespace reet
  5. {
  6.     class Texto
  7.     {
  8.  
  9.     public:
  10.  
  11.         Texto();
  12.         ~Texto();
  13.  
  14.     protected:
  15.  
  16.     private:
  17.  
  18.         int numero;
  19.  
  20.     };
  21.  
  22.     extern Texto TEXTO_NULO;
  23. }
  24.  
  25. #endif

parte de Boton.h que da error, (en private: )

Código C++:
Ver original
  1. // Funciones get
  2.         reet::us_t get_ancho(void);
  3.         reet::us_t get_alto(void);
  4.         reet::us_t get_pos_x(void);
  5.         reet::us_t get_pos_y(void);
  6.         * reet::Color get_color(void);
  7.         * reet::Texto get_texto(void);
  8.         bool get_material(void);
  9.         *sf::Image get_image(void);
  10.         *sf::Image get_image_clicked(void);
  11.         *sf::Image get_image_highlighted(void);

Me da el siguiente error:

Código:
In file included from boton.cpp:8:0:
boton.h:47:17: error: ISO C++ forbids declaration of ‘Color’ with no type [-fpermissive]
boton.h:47:17: error: invalid use of ‘::’
boton.h:47:17: error: expected ‘;’ at end of member declaration
boton.h:47:37: error: ISO C++ forbids declaration of ‘get_color’ with no type [-fpermissive]
boton.h:48:17: error: ISO C++ forbids declaration of ‘Texto’ with no type [-fpermissive]
boton.h:48:17: error: invalid use of ‘::’
boton.h:48:17: error: expected ‘;’ at end of member declaration
boton.h:48:37: error: ISO C++ forbids declaration of ‘get_texto’ with no type [-fpermissive]
A qué se debe? Me estoy rompiendo la cabeza y no entiendo.

Saludos,
JDN
  #2 (permalink)  
Antiguo 01/03/2013, 03:24
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: Error con tipos definidos por mi en un namespace

Hola, verifica las declaraciones de tus funciones:

*reet::Color get_color(void); //mal
reet::Color* get_color(void); //bien
  #3 (permalink)  
Antiguo 01/03/2013, 06:19
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Error con tipos definidos por mi en un namespace

Usar un espacio de nombres y una clase al mismo tiempo es rebundante, no crees?.

Otra cosa sería si tuvieras varias clases y funciones...
  #4 (permalink)  
Antiguo 01/03/2013, 11:38
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Error con tipos definidos por mi en un namespace

Oh, gracias, fightmx... había abandonado el C++ unas semanas y esto es lo que sucede por ello xD.

amachacon, sólo estoy poniendo una parte del código y voy empezando, como mencioné, estoy haciendo una librería para hacer GUI's...

Saludos.

Etiquetas: funcion, int, namespace
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:31.