6
votes

Confusion de déclaration de classe - Nom entre le bras de fermeture et le semi-côon

class CRectangle {
    int x, y;
  public:
    void set_values (int,int);
    int area (void);
  } rect;
In this example, what does 'rect' after the closing brace and between the semi-colon mean in this class definition? I'm having trouble finding a clear explanation. Also: Whatever it is, can you do it for structs too?

0 commentaires

4 Réponses :


2
votes

Il s'agit d'un objet de type Crectangle qui est global ou appartient à un espace de noms en fonction du contexte.


0 commentaires

12
votes

rect code> est le nom d'une variable (un objet dans ce cas).

C'est exactement comme si cela avait dit: P>

  struct { int x, y; } rect;


1 commentaires

C'est une "structure non nommée", pas une "structure anonyme". C ++ n'a pas de structs anonymes. Voir Stackoverflow.com / Questions / 2253878 / ...



1
votes

Il déclare une instance. Tout comme: xxx

Il n'y a pas de différence entre un classe et a struct in c ++, sauf struct s Défaut par défaut au public (en ce qui concerne les spécificateurs d'accès et l'héritage)


0 commentaires

1
votes

La seule et unique différence entre les structures et les classes est que les structures ont un héritage et des classes par défaut publiques, utilisent privé comme défaut pour les deux.


0 commentaires