Пре него што схватимо разлику између класе и структуре, требало би да знамо неколико основних концепата повезаних са њима. Без разумевања појмова, тешко је схватити разлике између њих два.
Ово су два важна концепта везана за објектно оријентисано програмирање и они чине основу за уоквиривање функција и преноса података на друге функције. За боље разумевање, то можемо повезати са примером из стварног живота. Класа се може сматрати продавницом, а Предмет може бити било која појединачна, специфична продавница, као што су намирнице, прибор за јело, воће, итд. Сви предмети имају заједничка својства главне класе - продавнице -, а заузврат, предмети могу имати своја ексклузивна својства као што су специфичан дизајн, осветљење итд. Кроз објекте ми заправо можемо користити класу; они формирају примерке класе.
Синтакса класе
Класа продавница
јавне жице;
дизајн јавних жица;
Синтакса објекта
Сторе продавница = нова продавница ();
Сторе Статионери = нова продавница ();
Структура укључује само податке и зато је корисно уоквиривати појединачне потребе за подацима преко објеката Струцт. За разлику од класе, она нема функције. Ево његове синтаксе:
струцт гроцери_ентранце
цхар ентри_наме [50];
инт ентри_сизе;
трговина прехрамбених производа;
Све продавнице могу користити Струцт 'улаз' са појединачним именима и величинама.
То је слично начину на који син наслеђује имовину свог оца, а заузврат, син може додати и неке друге ствари. Класа може бити или основна класа или изведена класа, у којој се прва може узети као база ради формирања друге. Изведена класа додаје мало других својстава за себе, осим онога што добија из основне класе. Када размотримо горњи пример, трговина прехрамбених производа и даље може бити изведена у одређену продавницу, као што је КСИЗ продавница..
Сада када смо упознати са основним концептима, можемо ући у стварну разлику између Класе и Структуре.
Демо обј = нови Демо ();
То значи да морамо користити кључну реч „ново“ док стварамо објекте класе. Ово није потребно приликом креирања објеката Струцтс. Погледајте само њихову синтаксу:
Демо обј;
Одлично функционира и без кључне речи "ново".
Како су класе флексибилније у заједничком преношењу података и функција, за то можемо ићи када су кориштени објекти сложени и велики. У нашем примеру, тржни центар може да користи класу 'продавница' да би изразио систем на бољи начин. Међутим, конструкције су ограничене на мање објекте, јер су релативно мање ефикасне од класа. Стога, ако сами дизајнирате продавницу, Струцтс су бољи избор.
Можда сте чули изразе „бокс“ и „одбацивање“ да бисте претворили структуру у класу и обрнуто. Иако су ово ефикасни процеси који нам помажу у претворби, с њима се треба поступати опрезно. Како то директно утиче на меморијске локације, има огроман утицај на перформансе нашег система. Штавише, утиче на процесе одвоза смећа и резултира укупном неефикасношћу система. Стога ове конверзије користите само када је то потребно.
Погледајмо горе наведене разлике у табеларном облику.
С.Но | Појмови | Разлике | |
Класа | Струцт | ||
1 | Поновна употребљивост | Потпуно поновна употреба | Није поновна употреба |
2 | Видљивост | Све функције класе су видљиве њеним објектима | Подаци објекта објекта нису видљиви осталим објектима исте Структуре |
3 | Пасс би Референце & Пасс би Валуе | Користи се путем референце | Користи се путем вредности |
4 | Наслеђивање | Функције класе се могу наслиједити по њеним подразредима; омогућава наслеђивање | Никада не дозвољава наследство |
5 | Подразумевана видљивост | Сви чланови класе су подразумевано приватни | Сви чланови Структа су подразумевано јавни |
6 | Величина када је празна | Величина празне класе је 1 бајт | Величина празне Структуре је 0 бајтова |
7 | Отпад | Како се користи пропусница, прикупљање смећа је могуће | Како користи пролазну вредност, одвоз смећа није могућ |
8 | Управљање меморијом | Једноставност процеса одвоза смећа помаже у ефикасном управљању меморијом | Недостатак сакупљања смећа резултира лошим управљањем меморијом |
9 | Конструктори | Омогућује конструкторе свих врста, као што су са или без параметара | Допушта само конструисане параметре |
10 | Деструктори | Могу га користити | Не могу га користити |
11 | Иницијализација варијабли чланова | Омогућава директну иницијализацију варијабли чланова | Не дозвољава директну иницијализацију речи променљивих чланова |
12 | Израда објекта | За време креирања објекта неопходно је користити кључну реч „ново“ | Током креирања објекта није неопходно користити кључну реч „ново“ |
13 | Када користити? | Боље за веће и сложеније објекте у којима је потребно наследство | Боље за мање и једноставније предмете у којима је наслеђивање мање важно. |
Скоро смо покрили све разлике између Класе и Структуре, а ако сматрате да нешто недостаје, јавите нам се. Учимо заједно и искористимо максимално то знање!