Разлика између структуре и класе

Аутор: Laura McKinney
Датум Стварања: 1 Април 2021
Ажурирати Датум: 4 Може 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Видео: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Садржај


И структура и класа пружају начин креирања прилагођеног типа података који се даље може користити за креирање инстанци. Ц ++ проширује улогу структуре да би створио класу. И структура и класа су слични у сваком погледу, осим једне разлике по томе што структура по дефаулту има свог члана као „јавну“, а класа према заданом има све чланове „приватне“. Проучимо разлику између структуре и класе помоћу упоредног графикона.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Сличности
  5. Закључак

Упоредни графикон

Основе за упоређивањеСтруктураКласа
Основни Ако спецификатор приступа није декларисан, сви чланови су подразумевано јавни.Ако спецификатор приступа није декларисан, сви чланови су подразумевано приватни.
Изјава струцт струцтуре_наме {
откуцајте струцт_елемент 1;
откуцајте струцт_елемент 2;
откуцајте струцт_елемент 3;
.
.
.
};
цласс цласс_наме {
члан података;
функција члана;
};
Примерак Инстанца структуре назива се структурна варијабла.Инстанца класе назива се објект.


Дефиниција структуре

Структура је збирка варијабли различитих типова података, на које се све позива једним именом. Декларација структуре твори образац који се користи за креирање инстанције структуре. Структура је декларисана на следећи начин.

струцт снаме {типе струцт_елемент1; откуцајте струцт_елемент2; унесите струцт_елемент3; . . . } варијабла1, варијабла2,. . .;

Кључна реч „струцт“ дефинише преводиоцу да се структура декларише. 'Име' представља име које је дато структури. Декларација структуре увијек се завршава точком са зарезом, јер се сматра изјавом. Можете декларирати инстанције структуре прије њеног укидања као што је то учињено у горњем коду (варијабла1, варијабла2) или можете декларирати инстанцу структуре у маин (), тако што ћете написати назив инстанце који је претходио имену структуре.

// пример. маин () {име С1, С2; }

Овде су С1 и С2 инстанци структуре. Примјери структуре називају се „варијабла структуре“. Елементу декларисаном у тијелу структуре може се приступити кроз варијабле структуре употребом дот (.) Оператора.


// пример С1. струцт_елемент1;

  • Архива структуре се такође може креирати, за то прво морате декларирати структуру, а затим прогласити низ тог типа.

// узорак сарраи струцт струцт снаме;

Горе наведена изјава ствара низ са именом 'сарраи' који садржи десет променљивих, а свака променљива је организована како је дефинисано у 'снаме'.

  • Можете пренијети члана структуре функцији, а функцији можете пренијети читаву структуру.
  • Као, цео показивач, показивач арраи, показивач структуре може се такође декларирати стављањем '*' на предњи назив променљивих структура.

// сампле сампле наме * С1;

Белешка:

Елементи 'структуре' смештају се у непрекидну меморијску локацију.

Дефиниција класе

Класа у ООП-у дефинише нови тип који садржи чланове података и функцију чланова који се користе за приступ члановима података класе. Примјери класа се називају „објекти“ од којих сваки има исту организацију као класа. Класа је логична апстракција, док објект има физичко постојање. Класа је синтактички слична структури. Класа се може декларирати на следећи начин.

цласс цласс_наме {чланови приватних података и функције чланова. типе_специфиер типе дата_мембер; откуцајте мем_фунцт (листа параметара) {. . }} листа објеката;

Овде је класа кључна реч која компајлеру изјављује да је класа декларисана. Главна карактеристика ООП-а је скривање података које се постиже пружањем три спецификатора приступа који су „јавни“, „приватни“, „заштићени“. Ако не одредите ниједан спецификатор приступа у класи током декларирања чланова или функција чланова, подразумевано се сви сматрају приватним. Спецификатор јавног приступа омогућава, функцијама или подацима могу приступити други делови вашег програма. Приватним члановима класе може приступити само члан те класе. Заштићени спецификатор приступа примењује се током наслеђивања. Једном када прогласите спецификатор приступа, он се не може мењати у току програма.

Објекти нису ништа друго до инстанца класе. Члановима класе приступа објект исте класе помоћу точкастог (.) Оператора.

//објецт.мем_фунцт (аргументи);

  • Објект се такође може проследити као аргумент функцији.
  • Показивач на објект се такође може креирати.
  1. Главна разлика између структура и класа је у томе што су, по дефаулту, сви чланови структуре јавни, док су, по дефаулту, сви чланови класе приватни.

Сличности:

  • У Ц ++ и структура и класа су синтактички еквивалентни.
  • И структура и класа могу неке чланове прогласити приватним.
  • Назив структуре или класе може се користити као самостални тип.
  • И структура и класа подржавају механизам насљеђивања.

Закључак:

Структура у Ц-у имала је одређена ограничења јер структура не дозвољава скривање података, 'дата' врста података не може се третирати као уграђени типови, структуре не подржавају насљеђивање. Структура у Ц ++ превазишла је та ограничења. У Ц ++, класе су проширена верзија структуре. Програмеру је лако користити класу за чување података и функцију и структуру само за чување података.