C++ Capítulo 4 Classes derivadas e exercícios de herança

5513,

Conteúdo do tópico:

P140 O Exemplo 5.2 define a classe person, que contém membros de dados privados age e constructor, funções membro setage e show functions. Defina a pessoa de herança privada do aluno da classe derivada, a classe derivada contém membros de dados privados critit e constructor, função de membro setage_cre e função show. O objeto da classe derivada stu1 é definido na função principal, e os valores iniciais são 19 e 166. Use o objeto para chamar a função de membro setage_cre, os parâmetros reais são 20 e 168. A saída é o valor do membro do objeto stu1.

Descrição de entrada e saída:

saída:
a idade é 20
crédito é 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,

Conteúdo do tópico:

 Defina a classe base B com o membro de dados privado i, defina construtor e destruidor e inclua instruções de saída para garantir que eles sejam chamados. Há também uma função membro que gera o valor de i.

Defina a classe derivada D com o membro de dados privado j, defina o construtor e o destruidor e inclua instruções de saída para garantir que eles sejam chamados. Há também uma função membro que gera o valor de j.

A função main define o objeto da classe derivada obj com valores iniciais de 50 e 60. Emita o valor do membro de dados obj.

Descrição de entrada e saída:

saída:
c base
c derivado
60
50
d derivado
base d

 

#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,

Conteúdo do tópico:

P158 Exemplo 5.11

Defina as classes base base1 e base2, que contêm os membros de dados privados x e y, respectivamente. Os construtores e as funções de membro devem ser definidos para obter o valor do membro de dados.

Defina a classe derivada derivada, que herda a base1 publicamente e herda a base2 de forma privada. Contém o membro de dados z. Defina construtores e funções de membro.

O objeto de classe derivado obj é definido na função principal, e os valores iniciais são 1, 3 e 5. Implementa a saída do membro de dados.

Descrição de entrada e saída:

saída:
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,

Conteúdo do tópico:

P165 Exemplo 5.15

Defina a base de classe base virtual, que contém um membro de dados a e um construtor.

As classes derivadas base1 e base2 que definem a base de classe base virtual contêm membros de dados b, c e construtores, respectivamente.

A classe derivada derivada que define base1 e base2 contém o membro de dados d e um construtor.

Requer uma instrução de saída no construtor para saber se ela é chamada.

O objeto derivado obj é definido na função main.

Descrição de entrada e saída:

saída:
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);
}

Acho que você gosta

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