inicializacion de objetos dentro de un objeto
Hola: tengo el problema de q no se como inicializar objetos dentro de objetos; porque todos los objetos tienen constructores q tienen parametros.
class cA
{
cA(char *nombre,int i );
.....
}
class cB
{
cB(int j,short t);
...
}
class c
{
cA a;
cB b;
}
No se como inicializar los objetos a y b cuando creo e inicializo c.
Agradeceria cualquier ayuda.
class cA
{
cA(char *nombre,int i );
.....
}
class cB
{
cB(int j,short t);
...
}
class c
{
cA a;
cB b;
}
No se como inicializar los objetos a y b cuando creo e inicializo c.
Agradeceria cualquier ayuda.
Para inicializar objetos de tipo cA y cB en c, como cualquier otro miembre de c, debes usar su constructor.
Alejandro
Alejandro
Hola:
Tienes dos opciones.
Una es declarar como punteros cA *a y cB *b. Luego en el constructor de c haces los news y en el destructor los delete.
Otra opcion es usar una sintaxis extraña pero correcta. Haces el constructor de c de esta manera
c::c () : a("cadena"): b (22)
{
// codigo del constructor de c
}
No te puedo asegurar si el separador entre a y b es : u otra coas. Tendrás que probar.
En http://arco.inf-cr.uclm.es/~dvilla/pensar_en_C++/ch08s04.html puedes ver un ejemplo de esto, en el apartado de " La lista de inicialización del constructor"
Se bueno.
Tienes dos opciones.
Una es declarar como punteros cA *a y cB *b. Luego en el constructor de c haces los news y en el destructor los delete.
Otra opcion es usar una sintaxis extraña pero correcta. Haces el constructor de c de esta manera
c::c () : a("cadena"): b (22)
{
// codigo del constructor de c
}
No te puedo asegurar si el separador entre a y b es : u otra coas. Tendrás que probar.
En http://arco.inf-cr.uclm.es/~dvilla/pensar_en_C++/ch08s04.html puedes ver un ejemplo de esto, en el apartado de " La lista de inicialización del constructor"
Se bueno.
Hola de nuevo:
He buscado un poco más en internet y en http://geneura.ugr.es/~jmerelo/c++-avanzado.htm tienes un ejemplo en el que inicializa dos atributos. En tu caso quedaría
c:c() : a("cadena") , b(22)
{
...
}
El separador es una , no un : como te puse antes
Se bueno.
He buscado un poco más en internet y en http://geneura.ugr.es/~jmerelo/c++-avanzado.htm tienes un ejemplo en el que inicializa dos atributos. En tu caso quedaría
c:c() : a("cadena") , b(22)
{
...
}
El separador es una , no un : como te puse antes
Se bueno.