Articles of inheritance multiple

Méthode d’extension C # en tant qu’implémentation d’interface

Je me demandais si une méthode d’extension C # de certaines classes pouvait servir d’implémentation d’interface? Qu’est-ce que j’ai: Une iterface: public interface IEventHandler { void Notify(SEvent ev, IEventEmmiter source); } Une classe qui l’implémente: class Sim : IEventHandler { /*public void Notify(SEvent ev, IEventEmmiter source) { Console.WriteLine(“Got notified: ” + ev.Name); }*/ } Et […]

C # prend-il en charge l’inheritance multiple?

Un collègue et moi discutons un peu de l’inheritance multiple. Je dis que ce n’est pas supporté et il dit que c’est le cas. Donc, j’ai pensé que je demanderais à la bande cérébrale sur le net.

Pourquoi les fonctions à inheritance multiple avec le même nom mais les signatures différentes ne sont-elles pas traitées comme des fonctions surchargées?

L’extrait de code suivant génère une erreur “appel à un appel ambigu” lors de la compilation, et j’aimerais savoir s’il existe un moyen de contourner ce problème sans qualifier complètement l’appel à foo: #include struct Base1{ void foo(int){ } }; struct Base2{ void foo(float){ } }; struct Derived : public Base1, public Base2{ }; int […]

Comment puis-je exiger un argument de méthode en Java pour implémenter plusieurs interfaces?

Il est légal de le faire en Java: void spew(Appendable x) { x.append(“Bleah!\n”); } Comment puis-je le faire (syntaxe non légale): void spew(Appendable & Closeable x) { x.append(“Bleah!\n”); if (timeToClose()) x.close(); } Je voudrais, si possible, forcer les appelants à utiliser des objects à la fois annexables et fermables, sans nécessiter de type spécifique. Il […]

Comment puis-je éviter le diamant de la mort en utilisant l’inheritance multiple?

http://en.wikipedia.org/wiki/Diamond_problem Je sais ce que cela signifie, mais quelles mesures puis-je prendre pour l’éviter?

Les valeurs du pointeur sont différentes mais elles sont égales. Pourquoi?

Un court exemple produit un résultat étrange! #include using namespace std; struct A { int a; }; struct B { int b; }; struct C : A, B { int c; }; int main() { C* c = new C; B* b = c; cout << "The address of b is 0x" << hex << […]

Pourquoi l’inheritance multiple n’est-il pas autorisé en Java ou en C #?

Je sais que l’inheritance multiple n’est pas autorisé dans Java et C #. Beaucoup de livres disent simplement que l’inheritance multiple n’est pas autorisé. Mais il peut être implémenté en utilisant des interfaces. Rien n’est discuté pour savoir pourquoi il n’est pas autorisé. Quelqu’un peut-il me dire précisément pourquoi ce n’est pas autorisé?

Mixins vs. Traits

Quelle est la différence entre Mixins et Traits? Selon Wikipedia , les modules Ruby sont en quelque sorte des traits similaires. Comment?

Comment créer une classe Java qui implémente une interface avec deux types génériques?

J’ai une interface générique public interface Consumer { public void consume(E e); } J’ai une classe qui utilise deux types d’objects, donc j’aimerais faire quelque chose comme: public class TwoTypesConsumer implements Consumer, Consumer { public void consume(Tomato t) { ….. } public void consume(Apple a) { …… } } Apparemment je ne peux pas faire […]

Héritage multiple en C #

Comme l’inheritance multiple est mauvais (cela rend la source plus compliquée), C # ne fournit pas un tel modèle directement. Mais parfois, il serait utile d’avoir cette capacité. Par exemple, je peux implémenter le modèle d’inheritance multiple manquant à l’aide d’interfaces et de trois classes comme celles-ci: public interface IFirst { void FirstMethod(); } public […]