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?
Respuestas:
Sí, a struct
es idéntico a a class
excepto por el nivel de acceso predeterminado (por miembros y por herencia). (y el significado adicional class
conlleva 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
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;
};