Skip to content

Commit

Permalink
Add heritage exercice
Browse files Browse the repository at this point in the history
  • Loading branch information
tony-maulaz committed Mar 8, 2022
1 parent 49d42ca commit f897937
Showing 1 changed file with 91 additions and 51 deletions.
142 changes: 91 additions & 51 deletions ex60-heritage.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,6 @@ int main() {
```
# Ex 2
Quel est l'affichage du programme ci-dessous ?
```cpp
#include <iostream>
using namespace std;
class C1 {
public:
public:
int val;
};
class C2 : public C1 {
public:
C2() {
val = 5;
}
};
int main() {
C2 c;
cout << "Res=" << c.val;
}
```


## Ex 2
Quel est l'affichage du programme suivant ?
Expand Down Expand Up @@ -99,29 +70,8 @@ int main(){
}
```

## Ex 3

Implémenter les classes `Vehicule` et `Voiture` de l'image suivante :

![alt text](images/heritage.png "UML")

Le nombre de roue est affecté pendant la construction des classes enfants.

Dans les méthodes, il faut afficher un texte.

Vous devez pouvoir exécuter le main suivant

```CPP
int main()
{
cout << "Exercice 2" << endl << endl;
Voiture v;
v.avancer();
v.tourner();
}
```

## Ex 4
## Ex 3

Quel est l'affichage du code suivant ?

Expand Down Expand Up @@ -149,3 +99,93 @@ int main()
delete p;
}
```

## Ex 4

Modifier les `???` pour que la méthode dans la classe enfant appel la méthode `print` de la classe parent.

```CPP
#include <stdio.h>
#include <iostream>

using namespace std;

struct Parent{
void print(){ cout << "Parent" << endl; }
};

struct Enfant : public Parent{
void print(){
// ???
cout << "Enfant" << endl;
}
};

int main()
{
Enfant e;
e.print();
return 0;
}
```

L'affichage du code sera
```console
Parent
Enfant
```

## Ex 5

```CPP
#include <stdio.h>
#include <iostream>

using namespace std;

struct Parent{

Parent(string m){
text = m;
}

string text;
};

struct Enfant : public Parent{

Enfant(){}
};

int main()
{
Enfant e;
e.print();
return 0;
}
```
1. Pourquoi le code ci-dessus ne compile pas ?
1. Modifier le code pour le rendre exécutable.
## Ex XXX
Implémenter les classes `Vehicule` et `Voiture` de l'image suivante :
![alt text](images/heritage.png "UML")
Le nombre de roue est affecté pendant la construction des classes enfants.
Dans les méthodes, il faut afficher un texte.
Vous devez pouvoir exécuter le main suivant
```CPP
int main()
{
cout << "Exercice 2" << endl << endl;
Voiture v;
v.avancer();
v.tourner();
}
```

0 comments on commit f897937

Please sign in to comment.