![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Esto funciona pero usa __closure: http://pastebin.com/czvfhEj8
Ya que hago algo me gustaria hacerlo lo mas correcto posible. Podria declarar sin problema los metodos como publicos y no tendria problemas ni tendria que crear una estructura o clase ni nada pero estarián desordenados, o sea, no podria crear un orden como el que he creado ahi. O sea, que si voy a trabajar con cadenas pues al poner un -> me salgan todos los metodos para cadenas, si voy a trabajar con enteros pues que al poner el -> que me salgan solo los que sirvan para enteros y asi con todo. Mas o menos lo que hace Builder cuando haces un Edit1->Text.sprintf("%i",9) que como ves te muestra la funcion sprintf. |
|
#2
|
||||
|
||||
|
Lo ultimo que he probado pero no soy capaz de hacerlo compilar es esto: http://pastebin.com/4Pd9DYEr
El problema lo tenemos en la funcion miembra de TInt que no soy capaz de asignar el valor de entrada a la direccion donde apunta el puntero ni tampoco mostrar su valor. |
|
#3
|
||||
|
||||
|
Perdon por escribir tanto pero en realidad lo que necesito hacer es esto:
Código:
class TPrueba; //Declaro la clase TPrueba
class TInt
{
public:
//Constructor y destructor
TInt();
~TInt();
//Declaraciones de las funciones para TInt
AnsiString toHex(int value);
private:
THilo* TPrueba::*Hilo; //Declaro el puntero a miembro
};
//La clase TPrueba
class TPrueba
{
friend class TInt; //Pongo esto para que pueda acceder al puntero al TThread que está en private
public:
TPrueba();
~TPrueba();
private:
THilo *Hilo; //Puntero a TThread
}
//Constructor de la clase TInt
TInt::TInt()
{
Hilo = &TPrueba::Hilo; //Le asigno la direccion del miembro TPrueba al puntero a miembro de la clase TInt
}
//Funcion miembro de la clase TInt que usa el puntero a miembro que creé
AnsiString __fastcall TInt::toHex(int value)
{
//Esto no lo quiere:
((THilo *)->Hilo)->toHex(value);
//He probado de todo pero no doy con el modo
}
|
|
#4
|
||||
|
||||
|
Creo que te complicas la vida perdiéndote en la sintaxis. No puedes pensar en determinada solución sintáctica para enfocar el problema en esa dirección sino al revés. En esos ejemplos no queda claro cual es el planteamiento del problema que quieres resolver pro lo que no puedo orientarte bien.
Si te puedo decir que las clases con punteros hay que manejarlas muy bien o tendrás problemas difíciles de depurar. Esto: Código:
((THilo *)->Hilo)->toHex(value); Piensa en usar clases derivadas. Saludos. |
|
#5
|
||||
|
||||
|
pero ¿las clases derivadas no heredan todo de la clase que deriban? No quiero eso exactamente. Hilo es un tthread que es privado en la clase TPrueba y lo que quiero es que la clase TInt pueda manejar el mismo hilo que haya creado TPrueba. Me han comentado que cree una estructura donde meta la declaracion de una funcion virtual que actue como callback y luego haga algo como clase TPrueba : private Estructura y dentro de TInt cree un metodo que use ese callback para acceder al hilo pero me pierdo y no se como hacerlo y ademas tanto la funcion callback como la que haga uso de ella tendrian que ser privadas ya que ambas usarian punteros a la estructura o a la clase. Tengo un cacao mental que ya no me entero de nada.
Última edición por aguml fecha: 29-06-2014 a las 13:59:15. |
|
#6
|
||||
|
||||
|
Cita:
Cita:
Cita:
Código:
toHex(Hilo->value); Saludos. |
|
#7
|
||||
|
||||
|
bueno hilo seria un objeto y no una funcion ¿Me estas diciendo que hacerlo global seria la mejor solucion?
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Pasar mi clase a una clase de 3 capas o lo mas parecido | elarys | OOP | 2 | 07-04-2011 23:02:54 |
| clase que contiene otra clase definida de forma posterior | astwin | OOP | 5 | 20-02-2009 11:26:55 |
| Es posible hacer una nueva clase de componente ?? | ilichhernandez | OOP | 7 | 05-05-2008 16:01:30 |
| Clase | jakuna | OOP | 2 | 30-08-2007 21:50:35 |
| Clase para hacer ABM | mateamargo | OOP | 3 | 25-10-2005 22:34:23 |
|