Funzione per struttura C ++


93

Di solito possiamo definire una variabile per una struttura C ++, come in

struct foo {
  int bar;
};

Possiamo anche definire funzioni per una struttura? Come useremmo queste funzioni?


4
Sì. Come per una lezione in C ++
DumbCoder

Risposte:


142

Sì, a structè identico a a classtranne che per il livello di accesso predefinito (per i membri e per l'ereditarietà). (e il significato extra classha quando usato con un modello)

Ogni funzionalità supportata da una classe è di conseguenza supportata da una struttura. Usereste i metodi come li usereste per una 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

Le strutture possono avere funzioni proprio come le classi. L'unica differenza è che sono pubblici per impostazione predefinita:

struct A {
    void f() {}
};

Inoltre, le strutture possono anche avere costruttori e distruttori.

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

    private: int x;
};
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.