Просто интересно, зачем нам нужна структура, если класс может делать все struct can и больше? Полагаю, что значения типов значений в классе не имеют побочного эффекта.
EDIT: не вижу серьезных причин использовать struct
Структура похожа на класс со следующими ключевыми отличиями:
- Структура - это тип значения, тогда как class является ссылочным типом.
- Структура не поддерживает наследование (за исключением неявно вытекающих из объект).
- Структура может иметь всех членов класс может, за исключением следующего:
- Безпараметрический конструктор
- Финализатор
- Виртуальные участники
Вместо класса используется структура, когда желательна семантика типа значения. Хорошие примеры структур - это числовые типы, где для назначения более естественно копировать значение, а не ссылку. Поскольку struct является типом значения, каждый экземпляр не требует создания экземпляра объекта в куче. Это может быть важно при создании многих экземпляров типа.