FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Instanciar Clase
Que tal Colegas...
He estado tratando de crear una instancia una clase que he diseñado pero desde código. Esta clase hereda de una clase abstracta y ésta es la definición Clase abstracta: Código:
#ifndef ProcesoH #define ProcesoH #include <vcl.h> //--------------------------------------------------------------------------- class TProceso : public TPersistent { private: int FID; protected: virtual void __fastcall Asignar() = 0; public: __fastcall TProceso(); __fastcall ~TProceso(); virtual bool __fastcall Agregar() = 0; __property int ID = {read=FID, write=FID}; }; #endif Código:
#ifndef ProcesoAH #define ProcesoAH #include "Proceso.h" //--------------------------------------------------------------------------- class TProcesoA : public TProceso { private: AnsiString FDatoA; protected: void __fastcall Asignar(); public: __fastcall TProcesoA(); __fastcall ~TProcesoA(); bool __fastcall Agregar(); __published: __property AnsiString DatoA = {read=FDatoA, write=FDatoA}; }; extern PACKAGE TProcesoA *ProcesoA; #endif Ej. Primero registro la clase y posteriormente la busco a través de FindClass e intento accesar a sus métodos de la siguiente manera: Código:
AnsiString Clase = "TProcesoA"; RegisterClass(__classid(TProcesoA)); TPersistentClass Proc; Proc = FindClass(Clase); ((TProceso*)&Proc)->Agregar(); Le he dado muchas vueltas y no lo he conseguido... En general quiero crear la instancia de la clase, es decir, crear el objeto y trabajar con sus métodos... pero esto depende del nombre de la clase a crear. Si alguien tiene alguna sugerencia....será bienvenida! Gracias!!! |
#2
|
||||
|
||||
Me perdí de algo o no estas creando una instancia... estas intentando ejecutar Agregar() sobre la clase, no sobre una instancia válida del objeto.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Que tal Juan.. gracias por contestar...
Efectivamente, ese es el problema que no es una instancia válida. Lo que necesito es intanciar mi clase. FindClass me regresa un puntero de tipo TMetaClass, AnsiString Clase = "TProcesoA"; RegisterClass(__classid(TProcesoA)); TMetaClass * Proc; Proc = FindClass(Clase); ...????? la pregunta es.... ¿puedo crear una instancia de mi clase a traves de este puntero? Saludos y gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Clase Serializable | luismolina | OOP | 7 | 09-05-2006 23:10:53 |
Ayuda Con Clase DES | edgusano | .NET | 2 | 04-04-2005 22:05:41 |
Métodos de clase. | jplj | OOP | 14 | 22-11-2004 09:30:19 |
Instanciar un form más de una vez | vpepen | Varios | 6 | 30-07-2004 13:44:35 |
...la clase... | Jure | Humor | 0 | 27-07-2004 20:00:47 |
|