Fonction pour la structure C ++

93

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

struct foo {
  int bar;
};

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

John
la source
4
Oui. Comme vous le faites pour un cours en C ++
DumbCoder

Réponses:

142

Oui, a structest identique à a, classsauf pour le niveau d'accès par défaut (membre et héritage). (et le sens supplémentaire classporte lorsqu'il est utilisé avec un modèle)

Chaque fonctionnalité prise en charge par une classe est par conséquent prise en charge par une structure. Vous utiliseriez les mêmes méthodes que celles que vous utiliseriez 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
Luchian Grigore
la source
37

Les structures peuvent avoir des fonctions 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;
};
0x499602D2
la source