Препоръчано, 2024

Избор На Редактора

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

Както структурата, така и класът осигуряват начин за създаване на персонализиран тип данни, който може да бъде използван допълнително за създаване на копия. C ++ разширява ролята на структурата за създаване на клас. Както структурата, така и класът, са сходни във всички отношения, с изключение на една разлика, че структурата по подразбиране има всички членове като “public”, а класът по подразбиране има всички негови членове “private”. Нека проучим разликата между структура и клас, като използваме таблица за сравнение.

Сравнителна таблица

Основа за сравнениеструктураклас
ОсновенАко спецификаторът на достъпа не е деклариран, по подразбиране всички членове са "публични".Ако спецификаторът на достъпа не е деклариран, по подразбиране всички членове са "частни".
декларацияstruct structure_name {
тип struct_element 1;
тип struct_element 2;
тип struct_element 3;
,
,
,
};
class class_name {
член на данните;
функция на член;
};
инстанцияЕкземпляр от „структура“ се нарича „структурна променлива“.Екземпляр от „клас“ се нарича „обект“.

Определение на структурата

Структурата е съвкупност от променливи от различни типове данни, всичките от които се споменават с едно име. Декларацията за структура образува шаблон, който се използва за създаване на копие на структурата. Структурата е обявена, както следва.

 struct sname {тип struct_element1; тип struct_element2; тип struct_element3;, , , } променлива1, променлива2, ., .; 

Ключовата дума 'struct' определя за компилатора, че се декларира структура. "Змията" представлява името, дадено на структурата. Декларацията на структурата винаги се прекратява с точка и запетая, тъй като се счита за изявление. Можете да декларирате копията на структурата преди нейното прекратяване, както е направено в горния код (променлива1, променлива2) или можете да декларирате екземпляра на структурата в main (), като напишете името на екземпляра предшествано с името на структурата.

 // пример. main () {sname S1, S2; } 

Тук S1 и S2 са инстанциите на структурата. Случаите на структурата се наричат ​​„структурна променлива“. Елементът, деклариран вътре в тялото на структурата, може да бъде достъпен чрез структурни променливи чрез използването на оператор точка (.).

 // Пример S1. struct_element1; 
  • Масивът от структура също може да бъде създаден, за това първо трябва да декларирате структура и след това да декларирате масив от този тип.
 // проба структура sname sarray [10]; 

Горното твърдение създава масив с име 'sarray', съдържащ десет променливи, и всяка променлива е организирана, както е дефинирано в 'sname'.

  • Можете да прехвърлите член на структура към функция и можете да прехвърлите цяла структура на функция.
  • Подобно на целочислен указател, указател на масив, структурен указател може да бъде деклариран и чрез поставяне на "*" в началото на името на структурни променливи.
 // проба struct sname * S1; 

Забележка:

Елементите "структура" се съхраняват в съседна памет.

Определение за клас

Класът в ООП дефинира нов тип, който съдържа данни за членовете и функцията-член, които се използват за достъп до данните на членовете на класа. Случаите на класовете се наричат ​​"обекти", всяка от които има същата организация като класа. Класът е логическа абстракция, докато обектът има физическо съществуване. Класът е синтактично подобен на структурата. Класът може да бъде деклариран както следва.

 клас class_name {частни данни членове и функции член. access_specifier тип data_member; въведете mem_funct (списък с параметри) {., }} списък на обекти; 

Тук класът е ключова дума, която декларира на компилатора, че е обявен клас. Основната характеристика на ООП е скриването на данни, което се постига чрез предоставяне на три спецификатора за достъп, които са „публични“, „частни“, „защитени“. Ако не укажете спецификатор за достъп в класа, докато декларирате членове или функции, по подразбиране всички се считат за частни. Спецификаторът за публичен достъп позволява, функции или данни да бъдат достъпни от други части на вашата програма. Само частните членове на класа могат да бъдат достъпни само от член на този клас. Спецификаторът на защитен достъп се прилага по време на наследяването. След като декларирате спецификатора за достъп, той не може да бъде променен по време на програмата.

Обектите не са нищо друго освен инстанцията на класовете. Членовете на класа са достъпни от обекта от същия клас, използвайки оператор с точка (.).

 //object.mem_funct (аргументи); 
  • Обектът може да бъде предаден и като аргумент на функция.
  • Може да се създаде и указател към обект.

Ключови разлики между структурата и класа

  1. Основната разлика между структурите и класовете е, че по подразбиране всички членове на структурата са публични, докато по подразбиране всички членове на класа са частни.

прилики:

  • В C ++ структурата и класът са синтактично еквивалентни.
  • Както структурата, така и класът могат да обявят част от своите членове за частни.
  • Името на структура или клас може да се използва като самостоятелен тип.
  • Както структурата, така и класът поддържат механизма на наследяване.

Заключение:

Структурата в C има някои от ограниченията, тъй като структурата не позволява скриване на данни, типът „struct“ не може да бъде третиран като вградени типове, структурите не поддържат наследяване. Структурата в C ++ преодоля тези ограничения. В C ++, класовете са разширената версия на структурата. Програмистът намира за лесно използването на класа за съхраняване на данни и функциониране и на структурата само за съхраняване на данни.

Top