C++ Capítulo 4 Clases derivadas y ejercicios de herencia

5513,

Contenido del tema:

P140 El ejemplo 5.2 define la clase de persona, que contiene datos privados de los miembros edad y constructor, funciones de miembro, funciones de escenario y de espectáculo. Defina la persona de herencia privada del estudiante de la clase derivada, la clase derivada contiene miembros de datos privados critit y constructor, la función miembro setage_cre y la función show. El objeto de clase derivado stu1 se define en la función principal, y los valores iniciales son 19 y 166. Use el objeto para llamar a la función miembro setage_cre, los parámetros reales son 20 y 168. La salida es el valor del miembro del objeto stu1.

Descripción de entrada y salida:

Salida: la 
edad es 20 
el crédito es 168
#include<iostream>
using namespace std;
class person{
protected:
    int age;
public:
    person(int age){
        this->age=age;
    }
    void setage(int age){
        this->age=age;
    }
    void show(){
        cout<<"age is "<<age<<endl;
    }
};
class student :public person{
protected:
    int credit;
public:
    student(int credit,int age1)  : person(age1){
        this->credit=credit;
    }
    void setage_cre(int credit,int age){
        this->credit=credit;
        this->age=age;
    }
    void show(){
        person::show();
        cout<<"credit is "<<credit<<endl;
    }
};
int main(){
    student stu1(166,19);
    stu1.setage_cre(168,20);
    stu1.show();
}

5518,

Contenido del tema:

 Defina la clase base B con el miembro i de datos privados, defina el constructor y el destructor, e incluya declaraciones de salida para asegurarse de que se llamen. También hay una función miembro que genera el valor de i.

Defina la clase derivada D con el miembro j de datos privados, defina el constructor y el destructor, e incluya declaraciones de salida para asegurarse de que se llamen. También hay una función miembro que genera el valor de j.

La función principal define el objeto de clase derivado obj con valores iniciales de 50 y 60. Muestra el valor del miembro de datos obj.

Descripción de entrada y salida:

Salida: 
c base 
c derivada 
60 
50 
d derivada 
d base

 

#include<iostream>
using namespace std;
class B{
protected:
    int i;
public:
    B(int i){
        this->i=i;
        cout<<"c base"<<endl;
    }
    ~B(){
        cout<<"d base"<<endl;
    }
    void output(){
        cout<<i<<endl;
    }
};
class D : public B{
protected:
    int j;
public: 
    D(int i,int j):B(i){
        this->j=j;
        cout<<"c derived"<<endl;
    }
    ~D(){
        cout<<"d derived"<<endl;
    }
    void output(){
        B::output();
        cout<<j<<endl;
    }
};
int main(){
    D obj(60,50);
    obj.output();
}

5519,

Contenido del tema:

P158 Ejemplo 5.11

Defina las clases base base1 y base2, que contienen miembros de datos privados x e y, respectivamente. Tanto los constructores como las funciones miembro deben definirse para obtener el valor del miembro de datos.

Defina la clase derivada derivada, que hereda base1 públicamente y hereda base2 de forma privada. Contiene el miembro de datos z. Definir constructores y funciones miembro.

El objeto de clase derivado obj se define en la función principal y los valores iniciales son 1, 3 y 5. Implementa la salida del miembro de datos.

Descripción de entrada y salida:

Salida: 
x=1 
y=3 
z=5

 

#include<iostream>
using namespace std;
class base1{
protected:
    int x;
public:
    base1(int x){
        this->x=x;
    }
    void output(){
        cout<<"x="<<x<<endl;
    }
    
};
class base2{
protected:
    int y;
public:
    base2(int y){
        this->y=y;
    }
    void output(){
        cout<<"y="<<y<<endl;
    }
    
};
class derived :public base1,private base2{
protected:
    int z;
public:
    derived(int x,int y,int z):base1(x),base2(y){
        this->z=z;
    }
    void output(){
        base1::output();
        base2::output();
        cout<<"z="<<z<<endl;
    }
};
int main(){
    derived obj(1,3,5);
    obj.output();
}

5520,

Contenido del tema:

P165 Ejemplo 5.15

Defina la base de la clase base virtual, que contiene un miembro de datos a y un constructor.

Las clases derivadas base1 y base2 que definen la base de la clase base virtual contienen miembros de datos b, c y constructores respectivamente.

La clase derivada derivada que define base1 y base2 contiene el miembro de datos d y un constructor.

Requiere una declaración de salida en el constructor para saber si se llama.

El objeto derivado obj se define en la función principal.

Descripción de entrada y salida:

Salida: 
c base 
c base1 
c base2 
c derivar

 

#include<iostream>
using namespace std;
class base{
protected:
    int a;
public:
    base(int a){
        this->a=a;
        cout<<"c base"<<endl;
    }
    base(){
        cout<<"c base"<<endl;
    }
};
class base1:virtual public base{
protected:
    int b;
public:
    base1(int a,int b):base(a){
        this->b=b;
        cout<<"c base1"<<endl;
    }
};
class base2:virtual public base{
protected:
    int c;
public:
    base2(int a,int c):base(a){
        this->c=c;
        cout<<"c base2"<<endl;
    }
};
class derived :public base1,public base2{
protected:
    int d;
public:
    derived(int a1,int a2,int b,int c,int d):base1(a1,b),base2(a2,c){
        this->a=a;
        this->d=d;
        cout<<"c derived"<<endl;
    }
};
int main(){
    derived obj(1,2,3,4,5);
}

Supongo que te gusta

Origin blog.csdn.net/qq_56350439/article/details/124434609
Recomendado
Clasificación