[C con Clase] sobre #
Juan
jmicanovelles en gmail.com
Jue Oct 16 21:19:42 CEST 2008
Para el precompilador, esto te vale, pero tu clase solo servira para punteros o no punteros en ese programa, no ambas cosas a la vez.
Ejemplo:
#define borrar_en_destructor 0
//0 o 1
template<typename DATA>
class claseX{
DATA data;
public:
claseX(const DATA& x):data(x){}
~claseX(){
#if borrar_en_destructor
delete data;
#endif
}
} ;
Si implementas el codigo en tiempo de ejecución, solo te sirve para punteros:
template<typename DATA,const bool borrar_en_destructor=false>
class claseX{
DATA data;
public:
claseX(const DATA& x):data(x){}
~claseX(){
if (borrar_en_destructor==true)
{
cout<<*data<<endl;
delete data;
}
}
} ;
Espero que te sirva.
Juan
El pasado 2008-10-16 14:24:26, Pedro Mateo escribió:
PM> hola a todos
PM> tengo la siguiente plantilla
PM> template<typename DATA,const bool borrar_en_destructor=false>
PM> class claseX{
PM> DATA data;
PM> public:
PM> claseX(const DATA& x):data(x){}
PM> ~claseX(){
PM> #if borrar_en_destructor==true
PM> delete data;
PM> #endif
PM> }
PM> }
PM> como DATA puede ser cualquier tipo, pero si es un puntero puede darse el
PM> caso de que yo desee que la clase le de un delete al puntero al ser
PM> destruida la instancia
PM> el codigo que he propuesto no funciona y me gustaria saber si estoy haciendo
PM> algo que no se puede o estoy haciendo algo mal
PM> gracias
PM> pedro
PM> _______________________________________________
PM> Lista de correo Cconclase Cconclase en listas.conclase.net
PM> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
PM> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase