Bonjour,
Je suis les cours de C++ : http://cpp.developpez.com/cours/polyCpp/#LIV-I-2
Je compile sur Code::Blocks ce code :
.hpp
.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #ifndef IV-I-2_HeaderFile #define IV-I-2_HeaderFile class Animal { virtual void uneFonction() { // il faut au moins une fonction virtuelle // (car il faut des classes polymorphes) } }; class Mammifere : public Animal { }; class Chien : public Mammifere { }; class Caniche : public Chien { }; class Chat : public Mammifere { }; class Reverbere { }; #endif
et j'ai pour rendu ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 /* Utilisation de typeid*/ #include <iostream> #include <conio.h> // Permet d'utiliser getch() #include <typeinfo> #include "IV-I-2.hpp" using namespace std; int main() { Animal *ptr = new Caniche; cout << typeid(ptr).name() << '\n'; cout << typeid(*ptr).name() << '\n'; cout << "L'animal pointe par ptr " << (typeid(*ptr) == typeid(Chien) ? "est" : "n'est pas") << " un chien\n"; cout << "L'animal pointe par ptr est un " << typeid(*ptr).name() << "\n"; return getch(); }
au lieu d'avoir cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 P6Animal 7Caniche L'animal pointe par ptr n'est pas un chien L'animal pointe par ptr est un 7Caniche
Please tell me why...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Animal * Chien L'animal pointé par ptr n'est pas un chien L'animal pointé par ptr est un Caniche
Partager