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?
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
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;
};