C++ Chapitre 4 Classes dérivées et exercices d'héritage

5513,

Contenu du sujet :

P140 L'exemple 5.2 définit la classe person, qui contient l'âge et le constructeur des membres de données privées, les fonctions membres setage et show. Définissez la personne d'héritage privé étudiant de la classe dérivée, la classe dérivée contient les membres de données privés critit et le constructeur, la fonction membre setage_cre et la fonction show. L'objet de classe dérivé stu1 est défini dans la fonction principale et les valeurs initiales sont 19 et 166. Utilisez l'objet pour appeler la fonction membre setage_cre, les paramètres réels sont 20 et 168. La sortie est la valeur membre de l'objet stu1.

Description des entrées et des sorties :

production:
l'âge est de 20 ans
le crédit est de 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,

Contenu du sujet :

 Définissez la classe de base B avec le membre de données privé i, définissez le constructeur et le destructeur, et incluez les instructions de sortie pour vous assurer qu'elles sont appelées. Il existe également une fonction membre qui affiche la valeur de i.

Définissez la classe dérivée D avec le membre de données privé j, définissez le constructeur et le destructeur, et incluez des instructions de sortie pour vous assurer qu'ils sont appelés. Il existe également une fonction membre qui génère la valeur de j.

La fonction main définit l'objet de classe dérivée obj avec des valeurs initiales de 50 et 60. Générez la valeur du membre de données obj.

Description des entrées et des sorties :

production:
base c
c dérivé
60
50
d dérivé
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,

Contenu du sujet :

P158 Exemple 5.11

Définissez les classes de base base1 et base2, qui contiennent respectivement les membres de données privés x et y. Les constructeurs et les fonctions membres doivent être définis pour obtenir la valeur du membre de données.

Définissez la classe dérivée, qui hérite publiquement de base1 et hérite de base2 de manière privée. Contient le membre de données z. Définissez les constructeurs et les fonctions membres.

L'objet de classe dérivé obj est défini dans la fonction principale et les valeurs initiales sont 1, 3 et 5. Implémente la sortie du membre de données.

Description des entrées et des sorties :

production:
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,

Contenu du sujet :

P165 Exemple 5.15

Définissez la classe de base virtuelle base, qui contient un membre de données a et un constructeur.

Les classes dérivées base1 et base2 qui définissent la classe de base virtuelle base contiennent respectivement les membres de données b, c et les constructeurs.

La classe dérivée qui définit base1 et base2 contient le membre de données d et un constructeur.

Nécessite une instruction de sortie dans le constructeur pour savoir s'il est appelé.

L'objet dérivé obj est défini dans la fonction main.

Description des entrées et des sorties :

production:
base c
c base1
c base2
c dériver

 

#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);
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_56350439/article/details/124434609
conseillé
Classement