Bonjour,
J'ai un petit pbl d'héritage, soit deux classe A et B, B hérite de A :
Pour moi, B hérite du de la methode A::bintest(unsigned char *...) et l'appel dans B::bintest(int argument_0) ne devrait pas poser de problème, or le compilo me dit :
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 class A { public : A(); virtual ~A(); public : inline virtual void bintest(unsigned char * argument_0); inline virtual void bintest(int argument_0); }; inline void A::bintest(unsigned char * argument_0) { omcout << "A::bintest(unsigned char *)" << omendl; } inline void A::bintest(int argument_0) { //#[ operation bintest(int) //#] } class B : virtual public A { public : B(); ~B(); public : inline void bintest(int argument_0); }; inline void B::bintest(int argument_0) { unsigned char z; bintest(&z); }
J'ai le même problème en gcc sous Cygwin et QNX et en Visual, donc ce ne doit pas être un pbl de compilo.Compiling B.cpp
In file included from B.cpp:11:
B.h: In member function `virtual void B::bintest(int)':
B.h:56: error: invalid conversion from `unsigned char*' to `int'
B.h:56: error: initializing argument 1 of `virtual void B::bintest(int)'
L'héritage permet bien de bénéficier du code écrit dans les méthodes des classes "parents" (pas abstraites bien sûr) ?
Merci de m'éclairer.
Partager