Função para estrutura C ++

93

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?

John
fonte
4
Sim. O mesmo que você faz para uma aula em C ++
DumbCoder

Respostas:

143

Sim, a structé idêntico a a, classexceto pelo nível de acesso padrão (por membro e por herança). (e o significado extra é classcarregado 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
Luchian Grigore
fonte
37

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;
};
0x499602D2
fonte