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?
Risposte:
Sì, a struct
è identico a a class
tranne che per il livello di accesso predefinito (per i membri e per l'ereditarietà). (e il significato extra class
ha 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
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;
};