Разница только между struct
и class
является доступом по умолчанию (за исключением некоторых странных шаблонных ситуаций, см. Комментарии Альфа ниже). Это означает, что вы можете получить доступ к закрытым членам так же, как в классе:
struct foo {
int get_X() { return x; }
void set_X(int x_) { x = x_; }
private:
int x;
};
Используете ли вы struct
или class
, это просто вопрос стиля. Я склонен использовать struct
, когда все члены являются публичными (например, если это класс функторов без переменных-членов и только с открытыми функциями).