web-dev-qa-db-fra.com

Fonction pour la structure C ++

Habituellement, nous pouvons définir une variable pour une structure C++, comme dans

struct foo {
  int bar;
};

Peut-on aussi définir des fonctions pour une structure? Comment utiliserions-nous ces fonctions?

72
John

Oui, un struct est identique à un class à l'exception du niveau d'accès par défaut (membre-sage et héritage). (et la signification supplémentaire class porte quand utilisé avec un modèle)

Chaque fonctionnalité supportée par une classe est donc supportée par une structure. Vous utiliseriez les mêmes méthodes que pour une classe.

struct foo {
  int bar;
  foo() : bar(3) {}   //look, a constructor
  int getBar() 
  { 
    return bar; 
  }
};

foo f;
int y = f.getBar(); // y is 3
115
Luchian Grigore

Les structures peuvent avoir des fonctions tout comme les classes. La seule différence est qu'ils sont publics par défaut:

struct A {
    void f() {}
};

De plus, les structures peuvent également avoir des constructeurs et des destructeurs.

struct A {
    A() : x(5) {}
    ~A() {}

    private: int x;
};
30
0x499602D2