2010-02-03 8 views
0

Est-ce que les structures supportent l'héritage? Je pense que c'est une question stupide, mais je n'en ai pas beaucoup d'idée.Différences entre les structures et les classes?

Quel est le sens de l'écriture de code comme ceci:

struct A { 
    void f() { cout << "Class A" << endl; } 
}; 

struct B: A { 
    void f() { cout << "Class B" << endl; } 
}; 

Dans les structures également partie privée viendra, ne donnent-ils pas l'encapsulation? Quelle est la différence majeure entre les structures et les classes?

+2

http://stackoverflow.com/questions/979211/struct-inheritance-in-c – sinek

Répondre

10

Les structures Yes prennent en charge toutes les fonctionnalités de ces classes. Les différences sont les suivantes:

    héritage de la structure
  • est publique par défaut
  • éléments de structure sont publiques par défaut
+0

Nous ne pouvons pas utiliser le mot-clé struct dans les modèles? – yesraaj

+5

@yesraaj: ce n'est pas tellement une différence entre les structures et les classes, c'est une utilisation syntaxique distincte du mot-clé 'class' que le mot-clé' struct' ne partage pas. Plus correctement, nous ne devrions même pas parler de "structures" en C++: 'struct A {};' définit une classe. –

+0

Est-il possible d'hériter de Struct de Class (et inversement) ou cela donne un comportement undef? – sinek

6

Les structures sont des classes avec une visibilité publique par défaut. Tout le reste est égal.

4

en C++ seule différence entre une structure et une classe est que pour la structure de la méthode/variable membre La visibilité est publique par défaut et pour la classe elle est privée par défaut. À part cela, il n'y a pas de différence.

Questions connexes