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?


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

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;
};
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.