В C ++ и других языках, на которые влияют, существует конструкция, которая называется Structure ( struct
), а другая называется class
. Оба способны содержать функции и переменные. Некоторые различия:
- Классу дается память в куче и
struct
дается память в стеке (примечание: это неправильно для C ++, но может быть правильным в том, что в OP называлось «языками влияния») - Переменные класса являются приватными по умолчанию и
struct
являются публичными
Мой вопрос: был ли кто- struct
то заброшен для класса? Если так, то почему? Кроме указанных выше различий, a struct
может делать все то же, что и класс. Так зачем отказываться от этого?
c++
object-oriented
prometheuspk
источник
источник
Ответы:
Это не заброшено вообще. На самом деле, даже современные языки, такие как C #, которые интенсивно используют,
class
все еще предлагают вамstruct
. Что касается того, когда полезно выбрать одно из другого, я отсылаю вас к этой статье:Выбор между классами и структурами
Цитируется из статьи MSDN:
источник
Вы ошибаетесь в C ++: единственное существенное различие между классом и структурой - это разница в спецификаторах доступа по умолчанию. Struct и class для всех намерений и целей являются синонимами, я считаю, что struct сохраняется для обратной совместимости с C.
источник
язык D создал большее различие между классом и структурой
структура в d - это не что иное, как выделенная в стек запись данных с некоторыми функциями, которые вы можете вызвать из нее ( нет возможности наследования, если вы не используете установку enum + union, т.е. реализуете полиморфизм самостоятельно), которая передается по значению
класс, к которому мы привыкли: виртуальные функции, выделение кучи, (одиночное) наследование, переданное ref
источник