Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sobrecarga
La sobrecarga es una característica que ofrece el lenguaje C++ para aplicar una misma
operación, a través de operadores o funciones, a diferentes tipos de datos. Se pueden
sobrecargar operadores, por ejemplo +, *, –, etcétera y funciones definidas por el propio
usuario. La sobrecarga permite generalizar el uso de operadores y funciones. A
continuación, se analizarán estos temas detalladamente.
Sobrecarga de operadores
La sobrecarga de operadores es el proceso de asignar dos o más operaciones al
mismo operador. Es decir, permite asignar una o más funciones adicionales a un
operador estándar, con el fin de que ésta sea llamada según el contexto en el cual se
utilice el operador. Un operador sobrecargado no puede tener parámetros
predeterminados.
Plantillas de funciones
Una plantilla de función es un modelo de función que el compilador de C++ usará para
construir diferentes versiones de una misma función, según los tipos de datos que se
especifiquen al invocar a la misma. La plantilla permite escribir funciones que difieren
exclusivamente en el tipo de datos que manejan.
Plantillas de clases
Las plantillas de clases permiten definir versiones de una misma clase que difieren en
el tipo de dato de alguno(s) de sus miembros. Es decir, se crea el modelo de una clase
el cual permitirá definir distintas instancias de la misma para diferentes tipos de datos.
Para declarar una plantilla de clase se usan las palabras reservadas template. El tipo T
se usa en aquellos miembros de la clase cuyos tipos tomarán un valor en el momento
de crear los objetos.
donde tipo indica el tipo de dato que reemplazará todas las ocurrencias de T en la
definición de la clase. Por ejemplo, si quisiera declarar dos objetos de tipo
PlantillaClase, pero uno con el tipo int como tipo de dato, y otro con float.
Polimorfismo
El término polimorfismo hace referencia a la capacidad de adoptar diversas formas. Por
lo tanto, un objeto polimórfico es aquel que tiene diversos aspectos. El polimorfismo
permite que un mismo método adquiera distintos contenidos declarando funciones o
métodos virtuales en la clase base y otras formas de los mismos en las clases
derivadas.
Por medio del polimorfismo se puede definir un solo método para objetos diferentes, es
decir, objetos que son instancias de distintas clases. En C++ el polimorfismo se define
a través de funciones virtuales. Por lo tanto, antes de presentar un ejemplo de
polimorfismo se hará una breve introducción a las funciones virtuales.
Funciones virtuales
Las funciones o métodos virtuales se usan en clases base para indicar que puede
haber múltiples formas de ellas en las clases derivadas. Para indicar que un método es
virtual se antepone la palabra reservada virtual.
Clases abstractas
Una clase abstracta es una clase que se define con el propósito de establecer bases
conceptuales sobre las cuales se definirán otras clases, mismas que podrán ser clases
concretas. Es decir, una clase abstracta no se usará directamente en la solución de un
problema, sino que formará parte del diseño conceptual de la solución. Por lo tanto, en
el programa no se crearán instancias (objetos) de las clases abstractas. Sin embargo,
cabe destacar que las clases derivadas sí heredan sus miembros.
En una clase abstracta pueden incluirse métodos virtuales que requieren ser
especificados en las clases derivadas. Es decir, métodos a los que se les asignará el
contenido en cada clase derivada. Estos métodos reciben el nombre de métodos
virtuales puros y se inicializan con el valor de cero. Si las clases derivadas no los
especifican, entonces se producirá un error.