Обычно мы можем определить переменную для структуры 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;
};