Está en la página 1de 12

CONSTRUCTORE

S Y HERENCIA

Los constructores son funciones miembro especiales que


sirven para inicializar un objeto de una determinada clase al
mismo tiempo que se declara.
Los constructores son especiales por varios motivos:
Tienen el mismo nombre que la clase a la que pertenecen.
No tienen tipo de retorno, y por lo tanto no retornan ningn
valor (ni siquiera void).
No pueden ser heredados.
Por ltimo, deben ser pblicos, no tendra ningn sentido
declarar un constructor como privado, ya que siempre se
usan desde el exterior de la clase, ni tampoco como
protegido, ya que no puede ser heredado.

Los constructores son funciones, tambin pueden


definirse varios constructores para cada clase, es
decir, el constructor puede sobrecargarse. La
nica limitacin (como en todos los casos de
sobrecarga) es que no pueden declararse varios
constructores con el mismo nmero y el mismo
tipo de argumentos.

Destructor
El destructor es muy similar al constructor,
excepto que es llamado automticamente cuando
cada objeto sale de su mbito de validez. Las
variables automticas tienen un tiempo de vida
limitado, ya que dejan de existir cuando se sale
del bloque en que han sido declaradas. Cuando un
objeto es liberado automticamente, su
destructor, si existe, es llamado
automticamente.
Un destructor tiene el mismo nombre que la clase
a la que pertenece, pero precedido con un signo
(~). Igual que el constructor, un destructor no
devuelve nada.

CARACTERISTICAS
Tambin tienen el mismo nombre que la clase a la
que pertenecen, pero tienen el smbolo delante.
No tienen tipo de retorno, y por lo tanto no retornan
ningn valor.
No tienen parmetros.
No pueden ser heredados.
Deben ser pblicos, no tendra ningn sentido
declarar un destructor como privado, ya que siempre
se usan desde el exterior de la clase, ni tampoco
como protegido, ya que no puede ser heredado.
No pueden ser sobrecargados, lo cual es lgico,
puesto que no tienen valor de retorno ni parmetros,
no hay posibilidad de sobrecarga.

Constructor copia
Un constructor de copia te sirve para crear un objeto que sea una copia de otro. Por
ejemplo, tienes la clase Empleado:
class Empleado
{
public:
Empleado(const Empleado& emp); // Constructor de copia
protected:
string nombre;
int edad:
};
// Implementacin del constructor de copia
Empleado::Empleado(const Empleado& emp)
{
nombre=emp.nombre;
edad=emp.edad;
}
As, si en tu cdigo tienes algo como esto:
Empleado emp1;
...
Empleado emp2(emp1); // Con esto creas un objeto (emp2), con los mismos valores que emp1

En general, los constructores copia tienen la


siguiente forma para sus prototipos (sintaxis):
tipo_clase::tipo_clase(const tipo_clase & obj);

HERENCIA
Una de las principales propiedades de las clases
es laherencia. Esta propiedad nos permite crear
nuevas clases a partir de clases existentes,
conservando las propiedades de la clase original y
aadiendo otras nuevas.
Cada nueva clase obtenida mediante herencia se
conoce comoclase derivada, y las clases a partir
de las cuales se deriva,clases base. Adems,
cada clase derivada puede usarse como clase
base para obtener una nueva clase derivada. Y
cada clase derivada puede serlo de una o ms
clases base. En este ltimo caso hablaremos
dederivacin mltiple.

La forma general de declarar clases derivadas es


la siguiente:
class <clase_derivada> : [public|private] <base1>
[,[public|private] <base2>] {};
En seguida vemos que para cada clase base
podemos definir dos tipos de
acceso,publicoprivate. Si no se especifica
ninguno de los dos, por defecto se asume que
esprivate.
public: los miembros heredados de la clase base
conservan el tipo de acceso con que fueron
declarados en ella.
private: todos los miembros heredados de la
clase base pasan a ser miembros privados en la
clase derivada.

// Clase base Persona:


class Persona {
public:
Persona(char *n, int e);
const char *LeerNombre(char *n) const;
int LeerEdad() const;
void CambiarNombre(const char *n);
void CambiarEdad(int e);
protected:
char nombre[40];
int edad;
};
// Clase derivada Empleado:
class Empleado : public Persona {
public:
Empleado(char *n, int e, float s);
float LeerSalario() const;
void CambiarSalario(const float s);
protected:
float salarioAnual;
};

CONCLUSIONES:
En conclusin un constructor sirve para inicializar
un objeto al mismo tiempo que se declare.
Se pueden definir varios constructores para una
clase , a esto se le llama sobrecarga
Si una variable sale del bloque de la funcin en la
que fue declarada el destructor se deshace de esa
variable.
La herencia es la que nos permite crear clases
nuevas a partir de unas ya existentes
conservando sus propiedades y aadiendo
nuevas.

FUENTES:
http://c.conclase.net/

También podría gustarte