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?


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

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;
};
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.