Zwykle możemy zdefiniować zmienną dla struktury C ++, tak jak w
struct foo {
int bar;
};
Czy możemy również zdefiniować funkcje dla struktury? Jak wykorzystamy te funkcje?
Odpowiedzi:
Tak, a struct
jest identyczny z a, class
z wyjątkiem domyślnego poziomu dostępu (według członków i dziedziczenia). (i dodatkowe znaczenieclass
ma zastosowanie z szablonem)
Każda funkcjonalność obsługiwana przez klasę jest konsekwentnie obsługiwana przez strukturę. Używałbyś metod tak samo, jak używałbyś ich dla klasy.
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
Struktury mogą mieć funkcje tak jak klasy. Jedyna różnica polega na tym, że są one domyślnie publiczne:
struct A {
void f() {}
};
Ponadto struktury mogą również zawierać konstruktory i destruktory.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};