Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Uso de Clase sin un constructor por defecto

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Uso de Clase sin un constructor por defecto

Notapor ibarra el Vie Feb 03, 2006 12:24 pm

Hola a todos los latindevelopers,

tengo un problema urgente que resolver.

Estoy usando una clase que no tiene constructor por defecto, entonces cuando voy a declararla para usarla como variable dentro de otra clase me dice que no es posible ... como la pregunta me parece complicada voy a describirles el problema con codigo :

CLASE1 la que quiero utilizar:

class CLASE1: public ClaseBase{
public :
CLASE1(ClaseParametros * param) : ClaseBase(param) {
_coll = new CLASE2 (this);
}
~CLASE1() {
delete _coll;
}
private:
CLASE2 * _coll;
};

CLASE2 que uso dentro de CLASE1

class CLASE2 : public OtraClase
{
public:
CLASE2 (ClaseBase* obj) : _obj(obj)
{ }

virtual ~CLASE2 ()
{ }

private:
ClaseBase* _obj;
};


Bueno esta bien complicada la cosa pero voy a tratar de simplificar la pregunta .... ahora bien quiero declarar una variable dentro de mi clase principal:

class CClasePrincipal : public CWinApp
{
CLASE1 miVariableDeCLASE1; ERROR

CLASE1 miVariableDeCLASE1(variableDeClaseParametros);

pero el problema es que no puedo hacerlo porque cuando declaro la variable tengo que pasarle obligatoriamente el parametro de tipo ClaseParametros esto no es tan grave para mi si pudiera declarar la variable como global pero no se como hacerlo en este caso .

CLASE1 static miVariableDeCLASE1(variableDeClaseParametros);

}

Agradeceria mucho si pueden ayudarme aunque se que esta duro pero bueno de todos modos les agradezco enormemente ... buen fin de semana a todos y GRACIASSSSSSSSSSSSSS
ibarra
Usuario Activo
Usuario Activo
 
Mensajes: 34
Registrado: Vie Abr 15, 2005 8:26 am

Re: Uso de Clase sin un constructor por defecto

Notapor latindeveloper el Mar Feb 07, 2006 10:09 am

Una alternativa es que declares la variable como puntero , ya que en la declaracion no es posible pasarle los parametros.

Código: Seleccionar todo
class CClasePrincipal : public CWinApp
{
  CLASE1 *m_pMiVariableDeCLASE1;
}


En el constructor de tu clase principal debes inicializar tu variable a NULL

Código: Seleccionar todo
m_pMiVariableDeCLASE1 = NULL;


Luego (seguramente en la funcion InitInstance ) inicializas la clase:


Código: Seleccionar todo
BOOL CTuApp::InitInstance()
{
    pMiVariableDeCLASE1 = new CLASE1( /*parametros*/ );
}


No olvides de liberar la memoria utilizada.

Código: Seleccionar todo
int CTranDocApp::ExitInstance()
{
   if(pMiVariableDeCLASE1)
   {
       delete pMiVariableDeCLASE1;
   }
   return CWinApp::ExitInstance();
}
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:30 pm
Ubicación: Peru

Gracias MUCHAS GRACIAS

Notapor ibarra el Mié Feb 08, 2006 10:30 am

SUPER ADMINISTRADOR, GRACIAS MIL VECES

lo que me dijiste funciona OK.

hasta la proxima
ibarra
Usuario Activo
Usuario Activo
 
Mensajes: 34
Registrado: Vie Abr 15, 2005 8:26 am


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados