Fundamentos de la programación en C++ [2]
- 1. El concepto de clase
- dos, clase
- 3. Constructor y destructor
- 4. Miembros de la instancia
- 5. Miembros estáticos
- 6. Programación orientada a objetos
1. El concepto de clase
1. Fuentes de clases e instancias
Un tipo es una abstracción, y las instancias de un tipo son entidades concretas.
1. Atributos
Los atributos son características de la instancia que nos interesa
2. Comportamiento
El comportamiento es lo que asumimos que una instancia puede hacerse a sí misma
2. Clases y objetos en el programa
La clase corresponde al tipo, el objeto corresponde a la instancia
1. Miembro de datos
Los miembros de datos de un objeto son variables cuyos valores representan propiedades
En la programación orientada a objetos, las propiedades de un objeto se simulan utilizando miembros de datos
2. Funciones de los miembros
En la programación orientada a objetos, el uso de funciones miembro es para simular el comportamiento de los objetos.
dos, clase
El programa C++ en modo orientado a objetos consta de definición de clase, definición de función miembro y programa de aplicación
1. Definición de clase
Una definición de clase consta de tres partes: encabezado de clase, cuerpo de clase y punto y coma. El
encabezado de clase consta de la palabra reservada class y el nombre especificado por el diseñador.
Los nombres de clase comienzan con una letra mayúscula para distinguirlos de las clases en la biblioteca que comienzan con una letra minúscula Un
cuerpo de clase es un bloque de instrucciones que contiene declaraciones de miembros de datos y funciones de miembros
Finalmente, hay un punto y coma después del paréntesis de cierre
1. Declarar miembros de datos
Declarar clases integradas u otros tipos de clases definidos previamente para
miembros de datos variables o constantes en una clase que no pueden depender unos de otros
2. Declarar funciones miembro
Declarar todas las funciones utilizadas para simular el comportamiento de la clase
Las funciones decoradas con const no pueden cambiar nada
3. Modificadores de acceso
Se utiliza para determinar la accesibilidad de la clase, dividida en privada, protegida y pública.El miembro
privado predeterminado
solo se puede acceder a través de funciones de miembro cuando el miembro es privado; cuando el miembro está protegido, se puede acceder a través de subclases
4. Modificadores de acceso para miembros de datos
Los miembros de datos de una clase generalmente se configuran como privados
5. Modificadores de acceso para funciones miembro
La función miembro de instancia de una clase generalmente se establece en public
, pero si se usa para ayudar a otras funciones miembro, pero no permite llamadas a funciones fuera de la clase, debe establecerse en private
6. Modificadores de acceso de grupo
Solo se usa una palabra clave privada y una palabra clave pública en toda la definición de clase, seguidas de dos puntos para agrupar
2. Definición de función miembro
Símbolo de alcance de clase::
cuando el valor del objeto no cambia, agregue const después de los paréntesis y antes de las llaves
3. Funciones en línea
Cuando el tiempo de ejecución de una llamada de función es mayor que el tiempo de ejecución del código dentro de la función, para mejorar el rendimiento del programa, la función se puede declarar como una función en línea para indicarle al compilador que reemplace la llamada de función con el código real. en la función
1. Funciones en línea implícitas
Al reemplazar una declaración de función con su definición, la función se define como implícitamente en línea (no recomendado)
2. Funciones en línea explícitas
Complete la palabra clave en línea antes de la definición de la función, y la función se define como una función en línea explícita
4. Aplicación
1. Instanciación de objetos
2. Objeto de operación
3. Selección de miembros
El punto entre un objeto y una función miembro se llama operador de selección de miembros.
5. Estructura
En una estructura todos los miembros son públicos por defecto mientras que en una clase todos los miembros son privados por defecto
3. Constructor y destructor
Hay 6 funciones miembro en una clase vacía: constructor y destructor (inicialización y limpieza), copia de copia y sobrecarga de asignación (copia y copia), dirección de objeto ordinaria y dirección de objeto const (sobrecarga de dirección)
1. Constructor
Un constructor es una función miembro especial que se utiliza para crear e inicializar un objeto, generalmente público.
En una clase, puede contener tres tipos de constructores: parámetro, predeterminado y copia.
1. Constructor de parámetros
Los constructores paramétricos de clase se pueden sobrecargar
2. Constructor por defecto
El constructor predeterminado de una clase no se puede sobrecargar
3. Copiar constructor
La función de copia de la clase no se puede sobrecargar.
2. Destructor
La tilde antes del destructor también forma parte del nombre.
Un destructor es una función miembro especial sin parámetros que limpia y recicla objetos.
3. Crea y destruye objetos
4. Funciones requeridas de los miembros
Debe haber un parámetro/constructor por defecto, debe haber un constructor de copia y un destructor, y lo que nos proporciona el sistema es sintético***
4. Miembros de la instancia
1. Miembros de datos de instancia y funciones de miembros de instancia
Los miembros de datos de instancia de una clase suelen ser privados y solo se accede a ellos a través de funciones de miembro de instancia Una función de miembro de instancia
de una clase debe ser pública para que se pueda acceder a ella desde fuera de la clase
Operadores de selección de miembros y -> (del operador indirecto y miembro combinación de selectores *xxx.)
1. Bloquear y desbloquear
La función miembro es utilizada por el objeto al que apunta este puntero.
2. Parámetros ocultos
3. Usa explícitamente este puntero
4. Objeto anfitrión
El objeto host es el objeto sobre el que opera la función miembro de la instancia en un momento dado (el objeto al que apunta este puntero)
5. Funciones de miembros accesores
Una función de instancia de acceso no puede cambiar el estado del objeto host, requiere el modificador const
6. Función de miembro cambiador
La función de instancia de mutador cambia el estado del objeto host, no puede tener el modificador const
2. Invariantes de clase
Un invariante es una o más condiciones que deben imponerse a algunos o todos los miembros de datos de clase.
5. Miembros estáticos
Los miembros estáticos se pueden utilizar para compartir datos entre varios objetos de una clase.
Los miembros de datos estáticos pertenecen a los miembros de datos de todas las instancias y deben calificarse con la palabra clave static.
Las funciones de miembros estáticos no tienen objeto host y no se puede
acceder a ellos con el calificador const. Miembro de datos de instancia, porque no tiene este parámetro de puntero.
Las funciones de miembro de instancia deben acceder a miembros de datos de instancia, y las funciones de miembro estático deben acceder a miembros de datos estáticos.
6. Programación orientada a objetos
1. Archivo independiente
1. Archivo de interfaz
Un archivo de interfaz es un archivo que incluye una definición de clase
Archivo de interfaz *.h para una definición de clase
2. Archivo de implementación
El archivo de implementación contiene la definición de la función miembro.
El archivo de implementación *.cpp se utiliza para la definición de la función miembro.
3. Archivos de solicitud
El archivo de aplicación incluye la función principal que instancia los objetos y permite que cada objeto realice sus propias operaciones.La
aplicación utiliza el archivo de aplicación app.cpp
2. Compilación independiente
El proceso de compilación de los tres archivos anteriores para crear un archivo ejecutable se denomina compilación independiente.
Los pasos del proceso de compilación son 5 pasos
1. Cree un archivo de interfaz que contenga solo la definición de clase
2. Crear el archivo de implementación
Una compilación exitosa generará un archivo de objeto .o
3. Cree el archivo de la aplicación
Una compilación exitosa generará un archivo de objeto .o
4. Vincule los dos archivos de objeto para crear un ejecutable
5. correr
3. Evita múltiples inclusiones
#ifndef, #define, #endif
evitan la definición repetida, si ifndef ya está definido, el preprocesador saltará directamente a endif
4. Embalaje
1. Diseño de clase
El diseño de la clase es desarrollado por el desarrollador.
2. Uso de clases
El uso de la clase es que el usuario usa el
3. El efecto de la encapsulación
La encapsulación puede proteger los archivos de interfaz y los archivos de implementación para que no se modifiquen.
4. Interfaz pública
La interfaz pública es un archivo de texto basado en la declaración de la función, que se usa para informar al usuario cómo usar la función miembro.
El formato del documento API es el siguiente
función xxx |
---|
Función A::B() xxx, utilizada para devolver xxx |