Подтвердить что ты не робот

Функция для структуры С++

Обычно мы можем определить переменную для структуры С++, как в

struct foo {
  int bar;
};

Можно ли также определить функции для структуры? Как мы будем использовать эти функции?

4b9b3361

Ответ 1

Да, a struct идентичен 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

Ответ 2

Структуры могут иметь функции, подобные классам. Единственное различие заключается в том, что они по умолчанию общедоступны:

struct A {
    void f() {}
};

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

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

    private: int x;
};