Clases abstractas

Páginas: 2 (354 palabras) Publicado: 18 de noviembre de 2015
Clases abstractas
Una clase abstracta es aquella que posee al menos una función virtual pura.
No es posible crear objetos de una clase abstracta, estas clases sólo se usan como clases base para ladeclaración de clases derivadas.
Las funciones virtuales puras serán aquellas que siempre se definirán en las clases derivadas, de modo que no será necesario definirlas en la clase base.
A menudo semencionan las clases abstractas como tipos de datos abstractos, en inglés: Abstract Data Type, o resumido ADT.
Hay varias reglas a tener en cuenta con las clases abstractas:
No está permitido crearobjetos de una clase abstracta.
Siempre hay que definir todas las funciones virtuales de una clase abstracta en sus clases derivadas, no hacerlo así implica que la nueva clase derivada será tambiénabstracta.
Para crear un ejemplo de clases abstractas, recurriremos de nuevo a nuestra clase "Persona". Haremos que ésta clase sea abstracta. De hecho, en nuestros programas de ejemplo nunca hemos declaradoun objeto "Persona". Veamos un ejemplo:

#include
#include
using namespace std;

class Persona {
public:
Persona(char *n) { strcpy(nombre, n); }
virtual voidMostrar() const = 0;
protected:
char nombre[30];
};

class Empleado : public Persona {
public:
Empleado(char *n, int s) : Persona(n), salario(s) {}
void Mostrar() const;
intLeeSalario() const { return salario; }
void ModificaSalario(int s) { salario = s; }
protected:
int salario;
};

void Empleado::Mostrar() const {
cout << "Empleado: " << nombre
<<", Salario: " << salario
<< endl;
}

class Estudiante : public Persona {
public:
Estudiante(char *n, float no) : Persona(n), nota(no) {}
void Mostrar() const;
floatLeeNota() const { return nota; }
void ModificaNota(float no) { nota = no; }
protected:
float nota;
};

void Estudiante::Mostrar() const {
cout << "Estudiante: " << nombre
<< ",...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • clases abstractas
  • Clases Abstractas
  • Clases Abstractas
  • clases abstractas
  • clases abstractas
  • 2 Clases Abstractas e Interfaces
  • clases abstractas nterfaces
  • Clases y metodos abstractos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS