C++ Esencial: Punteros, Arrays y Fundamentos de Programación Orientada a Objetos
Clasificado en Informática
Escrito el en español con un tamaño de 3,18 KB
Punteros y Arrays en C++: Conceptos Fundamentales
Correspondencia entre Arrays y Punteros
Para establecer la correspondencia entre arrays y punteros, se siguen estos pasos:
- Se declara un puntero del mismo tipo que los elementos del array.
- Se reserva memoria para todos los elementos del array. Los elementos de un array se almacenan internamente en la memoria del ordenador en posiciones consecutivas.
- Se inicializa el puntero de modo que apunte al primer elemento del array.
Diferencias Clave entre un Array y un Puntero
Existen diferencias fundamentales entre un array y un puntero:
- El identificador de un array se comporta como un puntero constante, es decir, no puede apuntar a otra dirección de memoria.
- El compilador asocia, de forma automática, una zona de memoria para los elementos del array, algo que no ocurre con los elementos apuntados por un puntero común.
Fundamentos de Programación Orientada a Objetos (POO) en C++
Definiciones Clave en POO
Método
Un método en C++ no es otra cosa que una función o procedimiento perteneciente a un objeto.
Clase
Una clase se puede considerar como un patrón para construir objetos.
Interfaz
Una interfaz se trata de la parte del objeto que es visible para el resto de los objetos. Es decir, es el conjunto de métodos (y a veces datos) de que dispone un objeto para comunicarse con él.
Polimorfismo
El polimorfismo es la propiedad que tienen los objetos de permitir invocar genéricamente un comportamiento (método) cuya implementación será delegada al objeto correspondiente en tiempo de ejecución.
El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es así.
Ejemplo de Polimorfismo:
- La definición del método reside en la clase base.
- La implementación del método reside en la clase derivada.
- La invocación es resuelta al momento de ejecución.
Herencia
La herencia es una relación entre clases en la cual una clase comparte la estructura y el comportamiento definidos en otra clase (Grady Booch).
Cada clase que hereda de otra posee:
- Los atributos de la clase base, además de los propios.
- Soporta todos o algunos de los métodos de la clase base.
- Una subclase hereda de una clase base.
Estructura de una Clase y Especificadores de Acceso
La estructura básica de una clase en C++ incluye especificadores de acceso que controlan la visibilidad de sus miembros:
class NombreClase {
public:
// Miembros accesibles desde cualquier parte donde sea accesible el propio objeto.
private:
// Miembros accesibles solo por los propios miembros de la clase y, en general,
// por objetos de la misma clase, pero no desde funciones externas o desde
// funciones de clases derivadas.
protected:
// Con respecto a las funciones externas, es equivalente al acceso privado,
// pero con respecto a las clases derivadas se comporta como público.
};