Функція для структури C ++


93

Зазвичай ми можемо визначити змінну для структури C ++, як у

struct foo {
  int bar;
};

Чи можемо ми також визначити функції для структури? Як би ми використовували ці функції?


4
Так. Те саме, що ви робите для класу на C ++
DumbCoder

Відповіді:


142

Так, a structє ідентичним a, classза винятком рівня доступу за замовчуванням (для членів та для спадкування). (і додаткове значення classмає при використанні з шаблоном)

Кожна функціональність, що підтримується класом, отже, підтримується структурою. Ви б використовували методи такі ж, як і для класу.

struct foo {
  int bar;
  foo() : bar(3) {}   //look, a constructor
  int getBar() 
  { 
    return bar; 
  }
};

foo f;
int y = f.getBar(); // y is 3

37

Структури можуть мати функції, як і класи. Єдина відмінність полягає в тому, що вони є загальнодоступними за замовчуванням:

struct A {
    void f() {}
};

Крім того, конструкції можуть також мати конструктори та деструктори.

struct A {
    A() : x(5) {}
    ~A() {}

    private: int x;
};
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.