Je suis nouveau à C ++. J'aime explorer l'idée d'héritage en C ++. Chaque fois que j'essaie de compiler le code suivant, j'obtiens l'erreur: voici mon code: p> Qu'est-ce qui ne va vraiment pas là? Quelle est la cause de l'erreur et comment l'éviter. S'il vous plaît expliquer en détail. P> p>
4 Réponses :
ANS SO. Classe code> a héritage par défaut privé, vous devez donc spécifier public code>, c'est-à-dire < XXX PRE>
struct code> a une héritage public comme défaut. p> p>
Disons que si j'aime modifier le code ci-dessus pour en savoir plus sur les mots-clés virtuels, amis et protégés. Dans quels scénarios nous utilisons ces mots-clés en maintenant l'exemple de code ci-dessus.
@Maxod je commencerais en recherchant un héritage virtuel, des spécificateurs d'accès (public, privé, protégé), des méthodes virtuelles et des méthodes virtuelles pures. C'est tout simplement trop pour expliquer dans un commentaire, mais il y a beaucoup de ressources en ligne et même des questions sur Stackoverflow sur tous ces sujets. Bonne chance!
Merci encore! Je republierai le même code avec quelques modifications et modifications dans le scénario avec une nouvelle question.
Vous devez spécifier le niveau d'accès de l'héritage:
class Bike : public Vehicle
Si vous ne spécifiez pas de spécificateur d'accès, héritage est automatiquement à ceci: p> privé code>.
Vous devez modifier cette ligne:
privé code> signifie que seuls les membres privés sont hérités?
Non, cela signifie que tous les membres des parents sont privés à la classe de base.
Vous voulez dire que tous les membres des parents sont privés (invisibles) à la classe enfant?
Encapsulation est atteint en plaçant des données connexes au même endroit et en offrant une sécurité aux données .include code> p>
privé code> - accès accordé à la même classe li>
public code> - n'importe quel code peut accéder aux données li>
protégé code> - accès accordé aux méthodes de la même classe, classe d'amis et classe dérivée li>
ol>
Vous voulez probablement faire
Classe Bike: Véhicule public Code> au lieu de JustVélo de classe: Véhicule Code>FYI: Vous y compris les en-têtes C en C ++, vous êtes manquant
#include code>, les classes sont par défaut de la portée privée de type Classe de classe: BASECLASS code> est une héritage privé, et c'estInt Main () Code> ...@ AJG85 Merci de me mettre à jour.
@Maxood Juste les observations initiales qui devraient couvrir toutes vos erreurs de compilation actuelles et i> avertissements. Btw c'est
#include code> si vous voulez std :: cout code>,std :: cin.get () code>, etc. Vous ne " t besoinconio.h code> du tout ;-)