elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Clase Derivada; Listas de Inicializacion.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase Derivada; Listas de Inicializacion.  (Leído 4,606 veces)
necro1991

Desconectado Desconectado

Mensajes: 19


¡Lidia Con Los Mejores, Muere Como El Resto!


Ver Perfil
Clase Derivada; Listas de Inicializacion.
« en: 11 Octubre 2010, 04:34 am »

Hola buenas tardes tengo una tarea donde tengo que usar una lista de inicializacion en clases... yo tube que faltar esa clase por que me operaron, entonces no he tenido tiempo por exceso de tareas para ir a asesoria... me gustaria que me ayudaran a saber como hacer una lista de inicializacion en una clase derivada:


Citar
class satelital: public Telefono{
private:
    char compa;
public:
    satelital(){}
    ~satelital(){}
    char Getcompa();
    void Setcompa(char);
};

En donde lo declaro ¿? y Como ¿?.. Y para que son ¿? espero me puedan ayudar :(


« Última modificación: 11 Octubre 2010, 04:42 am por necro1991 » En línea

...♫Las Cosas Que Haces En Vida Resuenan En La Inmortalidad♫...
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Clase Derivada; Listas de Inicializacion.
« Respuesta #1 en: 11 Octubre 2010, 05:31 am »

No se puede responder en forma especifica porque el ejemplo de una lista de inicialización puede variar dependiendo de como sea la estructura de las clases (tanto de las derivadas u de las clases base)
Ademas, para explicarlas primero hay que partir sobre la idea de como funcionan los constructores y como se maneja la cadena de llamadas en la herencia. Es un tema largo y bastante extenso.

Te dejo algunos ejemplos, así se vería una lista de inicialización en una clase:

Código
  1. class Yourclass
  2. {
  3.        public:
  4.                Yourclass() : yourPrivateData( 5 ) //Inicializa yourPrivateData a 5
  5.                { }
  6.  
  7.        private:
  8.                int yourPrivateData;
  9. };

Funciona con datos primitivos como un entero aunque en esos casos equivale a una asignación. Por supuesto también funciona con tipos built-in, y en esos casos hay una diferencia de rendimiento debido a que se omite la creación de un objeto temporal (como si sucede con la asignación en los constructores).

Igualmente las listas no solo se utilizan por esa cuota extra de rendimiento, en algunos casos son necesarias, por ejemplo cuando tenes constantes u referencias ya que en esos casos la inicialización es obligatoria.

Este es un ejemplo de una lista de inicialización en una clase derivada en donde el constructor de la clase base requiere una cadena como argumento:

Código
  1. class YourClass : public YourParent
  2. {
  3.        YourClass() : YourParent( "Cad" )
  4.        {}
  5. };

En conclusión, lo que te recomiendo es que busques en las chinchetas un libro de C++ para estudiar el tema, o que busques en Google algunos links que expliquen el tema en forma detallada, y como ultimo que pidas los apuntes de la clase del dia que no pudiste asistir.
Como dije al principio, el tema es largo como para explicarlo de corrido en un solo post, así que primero trata de hacer lo que te recomendé y si tenes alguna nueva duda sobre el mismo tema, la posteas en este hilo.

Saludos!


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
necro1991

Desconectado Desconectado

Mensajes: 19


¡Lidia Con Los Mejores, Muere Como El Resto!


Ver Perfil
Re: Clase Derivada; Listas de Inicializacion.
« Respuesta #2 en: 11 Octubre 2010, 05:45 am »

No se puede responder en forma especifica porque el ejemplo de una lista de inicialización puede variar dependiendo de como sea la estructura de las clases (tanto de las derivadas u de las clases base)
Ademas, para explicarlas primero hay que pa.....


Gracias! am tengo una pregunta  :-[
Entonces mi clase con lista de inicializacion quedaria asi masomenos: ¿?

Citar
class celular: public Telefono{
private:
    int ext;
public:
    celular(int ival=1):m_ival(ival){}
    ~celular(){}
    int Getext();
    void Setext(int);

void imprimir();
};
En línea

...♫Las Cosas Que Haces En Vida Resuenan En La Inmortalidad♫...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
clase para trabjar con listas simples
Programación C/C++
Namida 0 2,163 Último mensaje 4 Enero 2011, 11:42 am
por Namida
Dudas con DERIVADA
Dudas Generales
kaskull 4 3,559 Último mensaje 25 Octubre 2011, 22:34 pm
por kaskull
ayuda con una derivada
Foro Libre
flacc 2 2,444 Último mensaje 20 Mayo 2013, 08:52 am
por flacc
¿Duda sobre la sobreescritura de una función miembro en una clase derivada?
Programación C/C++
theluigy13etv 3 4,362 Último mensaje 21 Julio 2013, 19:19 pm
por theluigy13etv
[Problema] Propiedad Derivada que devuelva Mayusculas.
Java
LaLakers94 9 5,661 Último mensaje 12 Noviembre 2013, 17:38 pm
por Mitsu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines