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?


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

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;
};
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.