У чому відмінність struct від class

Власне, прочитавши "Мова програмування С ++ Cтрауструп" і відвідавши кілька посилань в мережі інтернет, зупинився на тому, що єдина відмінність структури від класу в тому, що члени структури за замовчуванням відносяться до розділу public, а у класу змінні і константи за замовчуванням pivate, все інше public. Десь знайшов пояснення, що структури були залишені для сумісності з Сі і поля відповідно за замовчуванням public, для того щоб не треба було переписувати величезну кількість програм. Але якщо це єдина відмінність, то навіщо потрібно було вигадувати таке поняття як клас?

C ++: в чому відмінність struct від class?

Як сильно мову C ++ відрізняється від Visual C ++? Переваги і недоліки одного над іншим, подібності та відмінності, сумісність вихідного коду, компіляція. Власне ось все питання.

Андрій Гоманцов (Гість) 2 відповіді

117775 421036 447470

Петро Васильєв (Гість) 3 роки тому

Foo a;
a.i \ u003d 1; // Ok
Bar b;
b.i \ u003d 1; // error C2248: u0027Bar :: iu0027. can not access private member declared in class u0027Baru0027

Sagara (Гість) 3 роки тому

C ++ - не перший об'єктно-орієнтована мова, тому, мабуть, class і з'явився (щоб було і сішнікам зручно адаптуватися, і до людей, які прийшли з інших мов). Знати правильну відповідь на це питання може тільки Страуструп.

За фактом на поточний день люди ще часто використовують struct для POD-ів або трохи складніших (але все ж "схожих на C)") випадках, а класи - у всіх інших випадках. Але це вже питання стилю, стилів буває багато хороших і різних, нав'язувати свій як на теперішній час не прийнято.

Схожі статті