Зазвичай ми можемо визначити змінну для структури C ++, як у
struct foo {
int bar;
};
Чи можемо ми також визначити функції для структури? Як би ми використовували ці функції?
Відповіді:
Так, 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
Структури можуть мати функції, як і класи. Єдина відмінність полягає в тому, що вони є загальнодоступними за замовчуванням:
struct A {
void f() {}
};
Крім того, конструкції можуть також мати конструктори та деструктори.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};