Programación básica de C++ 8: herencia de clases y objetos

1. La sintaxis básica de la herencia.

#include <iostream>
#include <string>
#include <math.h>
using namespace std;

//继承
//继承的好处:减少重复代码量

//父类
class CAT
{
public:
    void leg()
    {
        cout << "Cats have four legs." << endl;
    }
    void eye()
    {
        cout << "Cats have two big eyes." << endl;
    }
    void voice()
    {
        cout << "A cat`s voice is meow." << endl;
    }
};

//子类
//每个子类都可以继承父类的一些属性
//Orange cat
class OrangeCat: public CAT
{
public:
    void special()
    {
        cout << "The orange cat are usually fat." << endl;
    }
};

//milk cat
class MilkCat : public CAT
{
public:
    void special()
    {
        cout << "The milk cat are usually funny." << endl;
    }
};

//ragdoll
class Ragdoll : public CAT
{
public:
    void special()
    {
        cout << "The ragdoll are usually elegant." << endl;
    }
};

void test01()
{
    OrangeCat oo;
    oo.eye();
    oo.leg();
    oo.voice();
    oo.special();
    cout << "------------------------------------" << endl;

    MilkCat mm;
    mm.eye();
    mm.leg();
    mm.voice();
    mm.special();
    cout << "------------------------------------" << endl;

    Ragdoll rr;
    rr.eye();
    rr.leg();
    rr.voice();
    rr.special();
    cout << "------------------------------------" << endl;
}


int main()
{
    test01();
    return 0;
}

 

2. Método de herencia

 

 

3. Tipos de objetos en herencia

Ejemplo:

 Resultado: El hijo tiene la talla 16.

Motivo: todas las propiedades de los miembros no estáticos de la clase principal serán heredadas por la subclase. Las propiedades privadas de la clase principal también se heredarán, pero el compilador las ocultará después de que la subclase herede, por lo que no se podrá acceder a ellas.

Vea el modelo de objetos en el símbolo del sistema del desarrollador:

paso:

 

 

 4. Constructores y destructores en herencia

Primero construya la clase principal y luego construya la subclase;

Primero se destruye la clase secundaria y luego se destruye la clase principal. 

5. Herencia de socios del mismo nombre

 

 Nota: Las funciones miembro y los objetos miembro son los mismos.

6. Herencia de miembros estáticos con el mismo nombre.

 

7. Sintaxis de herencia múltiple

 

8. Herencia de diamantes

Problemas con la herencia de diamantes:

Cuando la clase nieta accede a un objeto miembro en la clase principal, dado que ambas subclases heredan la clase principal, habrá dos copias de datos en la gran clase que hereda la subclase.

Para resolver esta situación, agregue la palabra clave "virtual" (la herencia virtual se usa cuando la subclase hereda la clase principal) para que los nietos solo contengan una copia de datos.

 

 

Supongo que te gusta

Origin blog.csdn.net/MWooooo/article/details/122679308
Recomendado
Clasificación