Normalmente podemos definir uma variável para uma estrutura C ++, como em
struct foo {
int bar;
};
Podemos também definir funções para uma estrutura? Como usaríamos essas funções?
Respostas:
Sim, a struct
é idêntico a a, class
exceto pelo nível de acesso padrão (por membro e por herança). (e o significado extra é class
carregado quando usado com um modelo)
Cada funcionalidade suportada por uma classe é conseqüentemente suportada por uma estrutura. Você usaria métodos da mesma forma que usaria para uma classe.
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
Structs podem ter funções exatamente como classes. A única diferença é que eles são públicos por padrão:
struct A {
void f() {}
};
Além disso, as estruturas também podem ter construtores e destruidores.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};