Ответ
В C++ разница между class и struct минимальна и сводится к умолчанию уровня доступа и умолчанию наследования:
-
Уровень доступа по умолчанию:
- В
structвсе члены и методы по умолчаниюpublic. - В
classвсе члены и методы по умолчаниюprivate.
- В
-
Наследование по умолчанию:
- При наследовании
struct D : Base— наследование по умолчаниюpublic. - При наследовании
class D : Base— наследование по умолчаниюprivate.
- При наследовании
Пример, демонстрирующий разницу:
struct MyStruct { // public по умолчанию
int data; // public
void func() {} // public
};
class MyClass { // private по умолчанию
int data; // private
void func() {} // private
};
// Наследование
struct D1 : MyClass {}; // Наследование public MyClass (т.к. struct)
class D2 : MyClass {}; // Наследование private MyClass (т.к. class)
Практическое соглашение: struct традиционно используют для простых агрегатов данных (POD-типы, данные без сложной логики), а class — для полноценных объектов с инкапсуляцией и поведением. Однако с точки зрения языка их возможности (конструкторы, деструкторы, методы, наследование, полиморфизм) идентичны.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶