Bonjour,

J'ai un petit pbl d'héritage, soit deux classe A et B, B hérite de A :

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);
}
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 :
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)'
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.

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.