 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado
|
Publicado: Mar 18 May, 2004 10:21 am Asunto: instanciar en una clase una estructura declarada en otra |
|
|
¡Hola a tod@s!
A ver si se explicarme:
Por un lado tengo un formulario en el que he declarado, fuera de la clase que define el formulario, una estructura. Ejemplo:
//---------------------------------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
struct stA{
int a;
};
class TForm2 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
stA s;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
Si luego, en otro formulario intento declarar otra variable de tipo stA, me da el siguiente error:
[C++ Error] Unit1.h(19): E2303 Type name expected
El código es:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "Unit2.h"
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
stA t;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
No entiendo por qué da el error si tengo hecho el include.
Gracias por adelantado. |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Mar 18 May, 2004 4:20 pm Asunto: |
|
|
Loque sucede es que en la unidad 1 incluyes la unidad 2 y en la unidad 2 inclues la unidad 1.... de cierta manera como queel compilador se atora en esos casos y te manda el error, la verdad no tengo idea de a que se deba pero a mi me ha pasado muy frecuente, lo que hago en esos casos es en vez de incluir la unidad manualmente, hacerlo con Include Unit o directamente en el .cpp .... de esta manera no te mandaria el error, o de otra manera, declarar la estructra en otro archivo de cabecera e incluirla en ambas formas....
Espero te sirva saludos _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 19 May, 2004 2:55 pm Asunto: |
|
|
¡Hola!
Gracias por responder.
Efectivamente es por la llamada mútua. Lo que pasa es que necesito que sea así.
Lo que he hecho es, en vez de declarar la variable dentro del .h de Unit1, la he declarado en el .cpp y listo. Si no, tendría que hacer lo que dices de sacar la declaración a un .h separado e incluirlo en ámbas clases.
Hasta otra  |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|