Bonjour,
Voici un bug sur MSVC
Il doit m'afficher
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 #include "stdafx.h" class TESSAI { public: void printer(); }; class TESSAI2 : public TESSAI { public: bool b; virtual void printer(); }; void TESSAI::printer() { printf("Premier objet\n"); } void TESSAI2::printer() { printf("Dérivé\n"); TESSAI::printer(); } typedef TESSAI* PESSAI; typedef TESSAI2* PESSAI2; void callprinter(PESSAI ess) { ess->printer(); } int _tmain(int argc, _TCHAR* argv[]) { PESSAI2 ess2; ess2=new TESSAI2; callprinter(ess2); TCHAR tmp[128]; scanf("%s",tmp); return 0; }
Dérivé\n
et
Premier objet\n
car je lui passe un classe TESSAI2 "callprinter(ess2) qui est PESSAI2
Je passe la valeur ess2 qui est PESSAI2 ET NON PESSAI ;
et il m'affiche seulelemtn "Premier Objet"
Visual Studio ne prend pas en charge les dérivations d'objet !
donc cst buggé !
La solution serait de
void callprinter(PESSAI2 ess) ; evidemment ,
mais je refuse cet solution , car je vais developper un logiciel avec des
interface IHM dérivé sur une seule objet comme fait le MFC ;
Explication d'exemple
Sur un objet il y a un événement WM_PAINT appeler , le logiciel va rechercer l'objet grace au tag et identificateur d'objet et appelé la fonction
OnPaint de l'objet.
Solutuin Utiliser MFC , mais je refuse je fonctionne comme ça pour mon future logiciel IHM
Donc comment je fais ?
Merci bcp
Partager