Articles of inheritance

Classe proxy protégée «en lecture seule» pour les primitives en c ++

J’ai récemment trébuché sur cette classe proxy pour rendre les membres primitifs c ++ “en lecture seule” (agissent publiquement comme des références const, mais en privé non const). Cela élimine potentiellement le besoin de “getters” passe-partout. La classe proxy ressemble à: template class RO { friend Container; public: inline operator Primitive() const { return x; […]

Fonction d’appel à partir de la scope dérivée

J’ai un code qui semble similaire à ceci: #include class Base { public: void test() { std::cout << "Base::test()" << std::endl; } void test2() { test(); } }; class Derived : public Base { public: void test() { std::cout << "Derived::test()" << std::endl; } }; int main() { Derived d; d.test2(); return 0; } Maintenant, […]

C ++ intégré – polymorphism et inheritance

J’écris un jeu (Space Invaders) sur un Arduino connecté à un LCD graphique et j’ai une classe de sprite. Cette classe possède des atsortingbuts tels que Player / Alien, un object bitmap, un emplacement (x, y) et une fonction de déplacement. Je veux que chaque instance ait un missile et je pense que cela peut […]

à propos de la classe de base virtuelle et de l’inheritance virtuel en C ++

Dupliquer possible: problème d’inheritance virtuel gcc c ++ Bonjour à tous, Je lis bien Effective C ++ de Scott Myers Books. La classe de base virtuelle et l’inheritance virtuel ont été mentionnés comme suit. Les règles régissant l’initialisation des classes de base virtuelles sont plus compliquées et moins intuitives que celles des bases non virtuelles. […]

C ++ 11 Delete Méthode substituée

Préface: Il s’agit d’une question sur les meilleures pratiques concernant une nouvelle signification de l’opérateur de suppression introduit avec C ++ 11 lorsqu’il est appliqué à une classe enfant redéfinissant la méthode virtuelle d’un parent hérité. Contexte: Selon la norme, le premier cas d’utilisation cité consiste à interdire explicitement les fonctions d’appel pour certains types […]

Héritage multiple en forme de diamant avec uniquement des fonctions

Je voudrais discuter d’un problème d’inheritance en c ++. L’idée de base est d’avoir une classe de base avec des propriétés et différentes classes enfants avec des accesseurs à ces propriétés. Et en bas se trouve une classe, qui combine les classes enfants à une seule. C’est une forme de diamant qui pose certains problèmes. […]

polymorphism c ++ et passage de sous-classes

Je commence à comprendre l’inheritance en c ++ et j’essaie d’implémenter une configuration de base dans laquelle une classe de base possède a) une méthode abstraite fire() que les sous-classes doivent implémenter et b) une variable someDouble dont les sous-classes héritent. Ma configuration actuelle est ci-dessous. Cela ne comstackra pas, car getDerivedObject() tente de renvoyer […]

Héritage unique C ++ et fichiers d’en-tête

Je reçois un expected class-name before ‘{‘ token dans le code suivant le fichier d’en-tête saltwaterfish.h: #ifndef SALTWATERFISH_H #define SALTWATERFISH_H class saltwaterfish: public fish { public: saltwaterfish(); float GetUnitPrice(); float GetWeight(); }; #endif // SALTWATERFISH_H Est-ce la bonne façon de définir le fichier d’en-tête pour “poisson d’eau salée est une sous-classe de poisson”? la seule […]

Remplacement de membres statiques et de «tableaux statiques statiques»

J’ai un problème épineux avec le “remplacement” des tableaux statiques. J’ai des tableaux statiques (pour des raisons de simplicité) de longueur fixe dans différentes classes dérivées, mais toutes les tailles sont connues au moment de la compilation. J’ai également une fonction virtuelle dans la classe de base, mais je ne sais pas comment résoudre le […]

C ++ hériter classe de modèle

J’ai une demande particulière, j’espère que ce n’est pas exagéré et que cela peut être fait. J’ai un cours de template template class Packable { public: // Packs a into a Packet (Packet << T) virtual sf::Packet& operator <<(sf::Packet& p) const = 0; friend sf::Packet& operator <<(sf::Packet& p, const T &t); friend sf::Packet& operator <<(sf::Packet& […]