Різниця між структурою та класом

Автор: Laura McKinney
Дата Створення: 1 Квітень 2021
Дата Оновлення: 4 Травень 2024
Anonim
Структуры в C# | структуры и классы отличия | struct vs class | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 81
Відеоролик: Структуры в C# | структуры и классы отличия | struct vs class | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 81

Зміст


І структура, і клас надають спосіб створити індивідуальний тип даних, який можна використовувати далі для створення екземплярів. C ++ розширює роль структури для створення класу. І структура, і клас схожі в усіх відношеннях, за винятком однієї різниці, що структура за замовчуванням має свого члена як "public", а клас за замовчуванням має свого члена "private". Давайте вивчимо різницю між структурою та класом за допомогою діаграми порівняння.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Схожість
  5. Висновок

Порівняльна діаграма

Основа для порівнянняБудоваКлас
Основні Якщо специфікатор доступу не оголошено, за замовчуванням усі учасники є загальнодоступними.Якщо специфікатор доступу не оголошено, за замовчуванням усі учасники приватні.
Декларація struct structure_name {
наберіть struct_element 1;
введіть struct_element 2;
наберіть struct_element 3;
.
.
.
};
class class_name {
член даних;
функція члена;
};
Екземпляр Екземпляр структури називається структурною змінною.Екземпляр класу називається об'єктом.


Визначення структури

Структура - це сукупність змінних різних типів даних, на які посилається одна назва. Оголошення структури утворює шаблон, який використовується для створення примірника структури. Структура оголошена наступною.

назва імені {type struct_element1; введіть struct_element2; введіть struct_element3; . . . } змінної1, змінної2,. . .;

Ключове слово "struct" визначає компілятору, що структура декларується. 'Ім'я' позначає назву структури. Оголошення структури завжди закінчується крапкою з комою, оскільки вона вважається твердженням. Ви можете оголосити екземпляри структури до її закінчення, як це зроблено у наведеному вище коді (змінної1, змінної2), або ви можете оголосити екземпляр структури main (), записавши ім'я екземпляра, що передує назві структури.

// приклад. main () {ім'я S1, S2; }

Тут S1 і S2 - екземпляри структури. Екземпляри структури називаються "змінною структури". Елемент, оголошений всередині тіла структури, може бути доступний через змінні структури за допомогою оператора dot (.).


// приклад S1. struct_element1;

  • Масив структури також можна створити, для цього спочатку потрібно оголосити структуру, а потім оголосити масив цього типу.

// зразок структура імені sarray;

Вищенаведений оператор створює масив з іменем "sarray", що містить десять змінних, і кожна змінна впорядковується так, як визначено в "імені".

  • Ви можете передати члену структури функції, а ви можете передати функції всій структурі.
  • Як, ціле вказівник, вказівник масиву, вказівник на структуру також може бути оголошене, розмістивши "*" в передній частині назви змінних структури.

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

Примітка:

Елементи "структури" зберігаються в суміжній пам'яті.

Визначення класу

Клас в OOP визначає новий тип, який містить члени даних та функції членів, які використовуються для доступу до даних членів класу. Екземпляри класів називаються "об'єктами", кожен з яких має ту саму організацію, що і клас. Клас - це логічна абстракція, тоді як об’єкт має фізичне існування. Клас синтаксично схожий на структуру. Клас можна оголосити наступним.

class class_name {приватні дані і члени функції. type_specifier тип даних_член; введіть mem_funct (список параметрів) {. . }} список об'єктів;

Тут клас - це ключове слово, яке оголошує компілятору, що клас був оголошений. Основна особливість OOP - це приховування даних, яке здійснюється шляхом надання трьох специфікаторів доступу, які є "загальнодоступними", "приватними", "захищеними". Якщо ви не вказуєте жодного специфікатора доступу в класі під час декларування даних або функцій-членів, за замовчуванням всі вважаються приватними. Загальнодоступний специфікатор доступу дозволяє, доступ до функцій або даних отримувати доступ до інших частин вашої програми. До приватних членів класу можна звертатися лише лише до цього класу. Захищений специфікатор доступу застосовується під час успадкування. Після того, як ви оголосите специфікатор доступу, він не може бути змінений у всій програмі.

Об'єкти - це не що інше, як екземпляр класів. Члени класу отримують доступ до об'єкта одного класу за допомогою оператора крапки (.).

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

  • Об'єкт також може бути переданий як аргумент функції.
  • Вказівник на об’єкт також може бути створений.
  1. Основна відмінність структур і класів полягає в тому, що за замовчуванням всі члени структури є загальнодоступними, тоді як за замовчуванням всі члени класу є приватними.

Подібність:

  • У C ++ і структура, і клас синтаксично рівнозначні.
  • І структура, і клас можуть оголосити деяких своїх членів приватними.
  • Назва структури або класу може використовуватися як окремий тип.
  • І структура, і клас підтримують механізм успадкування.

Висновок:

Структура в C мала деяке обмеження, оскільки структура не дозволяє приховувати дані, "тип" типу data не можна трактувати як вбудовані типи, структури не підтримують успадкування. Структура на C ++ подолала ці обмеження. У C ++ класи - це розгорнута версія структури. Програміст вважає простим використання класу для зберігання даних і функціонування як і структури лише для зберігання даних.