Función para la estructura C ++

93

Por lo general, podemos definir una variable para una estructura C ++, como en

struct foo {
  int bar;
};

¿Podemos también definir funciones para una estructura? ¿Cómo usaríamos esas funciones?

Juan
fuente
4
Si. Lo mismo que haces para una clase en C ++
DumbCoder

Respuestas:

142

Sí, a structes idéntico a a classexcepto por el nivel de acceso predeterminado (por miembros y por herencia). (y el significado adicional classconlleva cuando se usa con una plantilla)

Cada funcionalidad soportada por una clase es consecuentemente soportada por una estructura. Usarías métodos de la misma manera que los usarías para una clase.

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
fuente
37

Las estructuras pueden tener funciones como clases. La única diferencia es que son públicos por defecto:

struct A {
    void f() {}
};

Además, las estructuras también pueden tener constructores y destructores.

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

    private: int x;
};
0x499602D2
fuente