• [^] # Re: Erreurs de C++

    Posté par . En réponse à la dépêche C# et Java, une étude comparée. Évalué à 2.

    Pas tout a fait d'accord : en C++ tu peux faire du multi heritage avec des classes contenant des champs et donc te retrouver avec une classe qui contient des attributs differents possedant le meme nom :
    Ex :
    class A {int i}
    class B : public A {}
    class C : public A {}
    class D : public B, C {}

    D possede B::i et C::i ==> Super chiant.
    On peut regler le probleme d'un seul coup en important tout le namespace de B (si on veut utiliser tout ce qui vient de B) ==>
    class D : public B, C {using namespace B;} Ce qui permet d'eviter de nommer a chaque fois le chemin que l'on veut prendre.

    En Java ce probleme ne se pose pas car une interface par definition ne contient que des methodes. Si deux methodes provenant de deux interfaces differentes ont le meme nom, tu n'as qu'une implementation (il y a des avantages et des inconvenients, c# a decide de permettre la resolution ==> On se retrouve avec deux methodes)

    Bref, je suis pas d'accord avec ton terme d'heritage multiple, je parlerai plutot d'implementation multiple.
    (Grosse difference entre C++ ou on "herite", et java ou on peut "etendre" et "implementer")