kzhereb / knu-is-ooop2019

Materials for "Fundamentals of OOP" course
MIT License
3 stars 0 forks source link

T10.11. В чому відмінність між class та struct? Коли що використовувати? #11

Open WAG13 opened 4 years ago

WAG13 commented 4 years ago

Відмінності:

Взагалі вони майже еквівалентні, тому це можна використовувати як class, так і struct (але пам'ятати про їх відмінності).

i1red commented 4 years ago

У класах поля/методи за замовчуванням private, у структурах - public. У С++ вони майже не відрізняються. Загалом структури прийнято використовувати в ролі набору значень, не створюючи геттери та сеттери для полів, наприклад std::pair. У інших випадках використовують класи.

solovdaria commented 4 years ago

Класи за замовчуванням мають специфікатор доступу private, тоді як структури - public. Структури слід використовувати тоді, коли приховування даних є недоречним. Також, частіше за все, структури мають поля, але не мають методів.

Velly69 commented 4 years ago

Структури відрізняються від класів тим, що доступ до елементів, а також базовий клас при спадкуванні за замовчуванням вважаються public. Структури переважніше використовувати для класів, всі елементи яких доступні.

AntonHladkiy commented 4 years ago

За замовчуванням члени class private, structure -public, загалом структури використовують для опису не великих контейнерів, де доступ до всіх полів не заважає програмі, а class для більш складних реалізацій з методами та взаємодією з іншими класами.

RostyslavMV commented 4 years ago

За замовчуванням члени class private, а у структур public. Краще не використвовувати struct в загальному випадку, можливо використовувати коли для опису певного набору даних без функцій, проте сьогодні від цього теж часто відмовляються і пишуть клас.

ilyakorenevskyi commented 4 years ago

Для структур усі ії поля та методи мають модифікатор public, а в классах навпаки - private. Для безпеки данних краще використовувати класси, struct можна використовувати де має місце доступ до всіх полів