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

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 5 Може 2024
Anonim
Разница в процентах между двумя числами в Excel
Видео: Разница в процентах между двумя числами в Excel

Съдържание


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

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. прилики
  5. заключение

Сравнителна диаграма

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


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

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

името на структура {тип struct_element1; въведете struct_element2; въведете struct_element3; , , , } променлива1, променлива2,. , .;

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

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

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


// пример S1. struct_element1;

  • Масивът от структура също може да бъде създаден, за това първо трябва да декларирате структура и след това да декларирате масив от този тип.

// проба sarray името на структура;

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

  • Можете да предадете член на структура на функция и можете да предадете цяла структура на функция.
  • Подобно на целочислен показалец, указател на масив, указател на структура също може да бъде декларирано, като се постави „*“ в предната част на името на променливите на структурата.

// примерно име на структура * S1;

Забележка:

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

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

Класът в OOP дефинира нов тип, който съдържа членове на данни и членски функции, които се използват за достъп до членовете на данните от класа. Екземплярите на класове се наричат ​​„обекти“, всеки от които има същата организация като клас. Класът е логическа абстракция, докато обектът има физическо съществуване. Класът е синтактично подобен на структурата. Класът може да бъде деклариран както следва.

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

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

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

//object.mem_funct (аргументи);

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

прилики:

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

Заключение:

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