Top.Mail.Ru
Ответы

В чём разница между struct и class в контексте языка С++?

По дате
По рейтингу
Аватар пользователя
Новичок
18лет

Любой класс, объявленный с использованием ключевого слова class, может быть объявлен с использование ключевого слова struct. Эти две разновидности классов отличаются только теми свойствами, которые имеют компоненты класса по умолчанию.
При определении класса с помощью ключевого слова class его члены будут считаться по умолчанию закрытыми.
Если класс определен с использованием ключевого слова struct, то объекты класса станут по умолчанию открытыми, но их можно закрыть при помощи метки private.
В Си (без ++) struct не может содержать функций(методов).
Классы, построенные с использование служебного слова union, не обладают всеми свойствами двух других классов. При использовании union члены класса могут быть только общедоступными.

Аватар пользователя
Гуру
18лет

принципиальной разницы между структурами в C и классами в C++ нет
Слово struct было оставлено в С++ для совместимости. Фактически тождественно слову class с той разницей, что все члены по умолчанию не private, а public.
В любом случае, memcpy - не стиль с++. Разве что для повышения быстродействия в некоторых случаях. оператор a=b выглядит понятнее чем memcpy(b,a,sizeof(a)).

Аватар пользователя
Знаток
18лет

Не претендуя на истину скажу, что struct - это просто набор значений разных типов, а class - это это тип, отражающий концепцию объяктно-ориентированного программирования