Red de conocimiento informático - Conocimiento sistemático - Definición de clases derivadas

Definición de clases derivadas

La definición de una clase derivada es utilizar el mecanismo de herencia y se pueden derivar nuevas clases a partir de clases existentes.

1. Descripción de sintaxis:

(1) Descripción de la clase base: el nuevo tipo de datos que se definirá en C++ no solo tiene miembros recién definidos, sino que también tiene miembros antiguos. time., llamamos a la clase existente utilizada para derivar nuevas clases como la clase base de C++, también conocida como clase principal.

(2) Tabla de clases base: El nombre de cada clase base se almacena en la tabla de clases base.

(3) Especificador de clase base: especificador de acceso para miembros de clase en el cuerpo de la clase base.

2. Clase base:

La nueva clase derivada creada por el proceso de herencia está compuesta por los miembros de la clase base más los miembros recién agregados de la clase derivada. En herencia múltiple, se puede construir un diagrama jerárquico donde la misma clase base puede ser parte de múltiples clases derivadas.

3. Clase abstracta:

La clase abstracta es como una descripción en cierto sentido, a través de la cual se pueden derivar clases únicas. No puedes crear un objeto para una clase abstracta, pero puedes usar un puntero o una referencia a una clase abstracta. Una clase que contiene al menos una función virtual pura es una clase abstracta. Las clases derivadas de clases abstractas deben proporcionar implementaciones para funciones virtuales puras; de lo contrario, también son clases abstractas.

Múltiples clases base y clases base virtuales

1. Múltiples clases base

Como se describe en la herencia múltiple, una clase puede derivar de múltiples clases base. En el patrón de herencia múltiple en el que una clase derivada se deriva de varias clases base, la clase base se describe utilizando el componente de sintaxis de la tabla de clases base.

El orden de descripción de la clase base generalmente no tiene un significado importante, excepto cuando se llaman constructores y destructores en determinadas circunstancias. En estos casos, el orden en que se declaran las clases base tiene los efectos que se enumeran a continuación.

Nota: El orden de descripción de la clase base afectará la distribución de memoria de la clase. No tome decisiones de programación sobre el orden de los miembros de la clase base en la memoria.

Cuando describe la tabla de clases base, no puede describir el mismo nombre de clase varias veces. Pero para una clase derivada, su clase base indirecta puede tener varias clases idénticas.

2. Clase base virtual

Porque una clase se puede utilizar como clase base indirecta de una clase derivada varias veces. C++ proporciona una manera de optimizar el trabajo de esta clase base.