Funkcja dla struktury C ++

93

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?

Jan
źródło
4
Tak. To samo, co w przypadku zajęć w C ++
DumbCoder,

Odpowiedzi:

142

Tak, a structjest identyczny z a, classz 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
Luchian Grigore
źródło
37

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;
};
0x499602D2
źródło