На данный вопрос уже ответили:
Так и все же, чем они отличаются? Если только спецификаторами доступа, то зачем для этого нужно было вводить класс?
Если только спецификаторами доступа, то зачем для этого нужно было вводить класс?
Ну так - именно для этого и нужно было. Было принято решение, что умолчательный доступ в классах в С++ должен быть уровня private
. А менять умолчательный доступ в struct
типах на private
было бы чересчур серьезным изменением, убивающим на корню любую обратную совместимость с С. В те времена такая обратная совместимость была важна.
Больше отличий нет. Вы имеет право ссылаться на класс, ранее объявленный с ключевым словом struct
, через ключевое слово class
(и наоборот)
struct S;
class S
{
...
};
в также свободно использовать ключевые слова struct
и class
в elaborated type specifier независимо от того, как с каким словом класс был объявлен.
Лично я думаю, что это наследие Страуструпова "C с объектами" :)
В конце-концов, все, что можно сделать с float
, можно делать и с double
- но в языке остались и тот, и другой тип :)
Но с другой стороны, достаточно логично - наличие struct
для простого агрегирования данных, и class
для выражения объектов с поведением. Чисто для логического разделения этих сущностей. Тех, кто использует struct
для классов, надо бить по пальцам так же, как и тех, кто использует class
для простой структуры...
Но это не более чем мое мнение.
Повторю частично 1 ответ:
У struct
все поля по умолчанию public
и при наследование по умолчанию public
, у class
— и то, и другое private
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Продолжение этой темы Ошибки в коде при решении уравнения переноса
Всем приветКак мне в предложении "Андрусов Анатолий Никифорович пошёл выпить чай у берега Гудзона