Ключова разлика: C ++ е обектно ориентиран език, който се фокусира главно върху обекти. Клас в C ++ може да бъде дефиниран като колекция от свързани променливи и функции, капсулирани в една структура. Случаите от класа се наричат обекти. Структура в C ++ може да бъде наричана потребителски дефиниран тип данни, притежаващ свои собствени операции. За разлика от езика C, и двете са доста сходни в C ++. Основната разлика, която съществува между тях, е по отношение на модификатора за достъп; членовете на клас са по подразбиране частни, докато членовете на структура са по подразбиране публични.
Клас в C ++ е просто разширение на структура, използвана на C език. Това е потребителски тип данни. Той всъщност свързва данните и свързаните с тях функции в една единица. Структурата и класът на езика C се различават много, тъй като структурата има ограничена функционалност и характеристики в сравнение с клас. От друга страна, структурата и класът в C ++ са доста сходни. Основната разлика се дължи на факта, че по подразбиране всички членове на класа са частни, докато по подразбиране всички членове на една структура са публични.
Сравнение между клас и структура в C ++:
клас | структура | |
дефиниция | Клас в C ++ може да бъде дефиниран като колекция от свързани променливи и функции, капсулирани в една структура. | Структурата може да бъде наречена потребителски тип данни, притежаващ свои собствени операции. |
Ключова дума за декларацията | клас | Struct |
Спецификатор за достъп по подразбиране | частен | обществен |
пример | клас миклас { лично: int данни; публичния: myclass (int data_): данни (data_) {} виртуална void foo () = 0; virtual ~ class () {} }; | struct myclass { лично: int данни; публичния: myclass (int data_): данни (data_) {} виртуална void foo () = 0; virtual ~ class () {} }; |
Предназначение | Отнемане на данни и по-нататъшно наследяване | Като цяло, групиране на данни |
Тип | препратка | стойност |
употреба | Обикновено се използва за големи количества данни. | Обикновено се използва за по-малки количества данни. |