Цомпарисон Цхарт
Основа за поређење | Структура | Класа |
---|---|---|
Басиц | Ако спецификатор приступа није декларисан, подразумевано сви чланови су 'јавни'. | Ако спецификатор приступа није декларисан, подразумевано сви чланови су 'приватни'. |
Декларација | струцт струцтуре_наме { типе струцт_елемент 1; типе струцт_елемент 2; типе струцт_елемент 3; . . . }; | цласс цласс_наме { дата мембер; функција члана; }; |
Инстанце | Инстанца 'структуре' се назива 'структурна варијабла'. | Инстанца 'класе' се назива 'објект'. |
Дефиниција структуре
Структура је скуп варијабли различитих типова података, на које се упућује једно име. Декларација структуре формира предложак који се користи за креирање инстанце структуре. Структура је декларисана као следећа.
струцт снаме {типе струцт_елемент1; типе струцт_елемент2; типе струцт_елемент3; . . . } вариабле1, вариабле2, . . .;
Кључна реч 'струцт' дефинише компајлеру да је структура декларисана. 'Змија' представља име дату структури. Декларација структуре се увек завршава тачком и зарезом, као што се сматра као изјава. Можете декларисати инстанције структуре пре њеног завршетка као што је учињено у горњем коду (вариабле1, вариабле2) или можете декларисати инстанцу структуре у маин (), тако што ћете написати име инстанце испред имена структуре.
// екампле. маин () {снаме С1, С2; }
Овде су С1 и С2 примери структуре. Примери структуре називају се „структурна променљива“. Елементу декларисаном унутар тијела структуре може се приступити кроз структуралне варијабле кориштењем тач (.) Оператора.
// Пример С1. струцт_елемент1;
- Низ структура се такође може креирати, за ово, прво морате декларисати структуру, а затим декларисати низ тог типа.
/ / сампле струцт снаме сарраи [10];
Изнад наредбе креира низ са именом 'сарраи' који садржи десет варијабли, а свака варијабла је организирана као 'снаме'.
- Можете пренијети члан структуре на функцију, и можете прослиједити цијелу структуру функцији.
- Као и интегер поинтер, поинтер поља, структурни показивач се такође може декларисати стављањем '*' на предње име структуре променљивих.
// узор струцт снаме * С1;
Белешка:
Елементи 'структуре' се чувају у суседној меморијској локацији.
Дефиниција класе
Класа у ООП-у дефинише нови тип који садржи чланове података и функцију члана, који се користе за приступ члановима података класе. Примери класа се називају "објекти" од којих сваки има исту организацију као и класа. Класа је логичка апстракција, док објекат има физичко постојање. Класа је синтактички слична структури. Класа се може декларисати као следећа.
цласс цласс_наме {привате дата мемберс анд мембер фунцтионс. аццесс_специфиер типе дата_мембер; упишите мем_фунцт (листа параметара) {. . }} попис објеката;
Овде је класа кључна реч која декларише компајлеру да је класа декларисана. Главна карактеристика ООП-а је скривање података које се постиже пружањем три спецификатора приступа који су „јавни“, „приватни“, „заштићени“. Ако у класи не наведете ниједан спецификатор приступа док декларишете чланове података или функције члана, подразумевано се сви сматрају приватним. Спецификатор јавног приступа дозвољава, функцијама или подацима приступити други дијелови вашег програма. Приватним члановима класе може приступити само члан те класе. За време наслеђивања примењује се заштићени спецификатор приступа. Када декларишете спецификатор приступа, он се не може мењати кроз програм.
Објекти нису ништа друго до инстанца класа. Члановима класе приступа се објекат исте класе помоћу тачкастог (.) Оператора.
//објецт.мем_фунцт (аргументи);
- Објект се такође може проследити као аргумент функцији.
- Показивач на објекат се такође може креирати.
Кључне разлике између структуре и класе
- Главна разлика између структура и класа је у томе што су сви чланови структуре по дефаулту јавни, док су по дефаулту сви чланови класе приватни.
Сличности:
- У Ц ++ су структура и класа синтактички еквивалентни.
- И структура и класа могу прогласити неке од својих чланова приватним.
- Име структуре или класе може се користити као самостални тип.
- И структура и класа подржавају механизам наслеђивања.
Закључак:
Структура у Ц-у је имала нека ограничења јер структура не дозвољава скривање података, 'струцт' тип података се не може третирати као уграђени типови, структуре не подржавају насљеђивање. Структура у Ц ++ превазишла је ова ограничења. У Ц ++, класе су проширена верзија структуре. Програматору је лако користити класу за држање података и функцију и структуре и структуре само за чување података.