Структура C ++ на прикладі

Зміст:

Anonim

Що таке структура в C ++?

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

Наприклад:

Припустимо, вам потрібно зберігати інформацію про когось, його ім’я, громадянство та вік. Ви можете створити такі змінні, як ім’я, громадянство та вік, щоб зберігати дані окремо.

Однак у майбутньому вам може знадобитися зберігати інформацію про багатьох людей. Це означає, що будуть створені змінні для різних людей. Наприклад, ім'я1, громадянство1, вік1 тощо. Щоб уникнути цього, краще створити структуру.

У цьому підручнику з C ++ ви дізнаєтесь:

  • Що таке структура в C ++?
  • Коли використовувати структуру?
  • Ініціалізація структури С ++
  • Створення екземплярів структур
  • Доступ до членів структури
  • Вказівники на структуру
  • Структура як аргумент функції
  • Обмеження структури С ++

Коли використовувати структуру?

Ось кілька причин використання структури в C ++.

  • Використовуйте структуру, коли вам потрібно зберігати елементи різних типів даних під одним типом даних.
  • Структури C ++ - це тип значення, а не тип посилання. Використовуйте структуру, якщо ви не збираєтеся змінювати свої дані після створення.

Ініціалізація структури С ++

Для створення структури С ++ ми використовуємо ключове слово struct, за яким слідує ідентифікатор. Ідентифікатор стає назвою структури. Ось синтаксис для створення структури C ++:

Синтаксис:

struct struct_name{// struct members}

У наведеному вище синтаксисі ми використовували ключове слово struct. Назва_структури - це назва структури.

Члени структури додаються в фігурні дужки. Ці члени, ймовірно, належать до різних типів даних.

Наприклад:

struct Person{char name[30];int citizenship;int age;}

У наведеному вище прикладі Особа - це структура, що складається з трьох членів. Серед учасників - ім’я, громадянство та вік. Один член має тип даних char, тоді як решта 2 - цілі числа, коли створюється структура, пам’ять не виділяється. Пам'ять виділяється лише після додавання змінної до структури.

Створення екземплярів структур

У наведеному вище прикладі ми створили структуру з іменем Person. Ми можемо створити змінну struct наступним чином:

Person p;

P є змінною структури типу Person. Ми можемо використовувати цю змінну для доступу до членів структури.

Доступ до членів структури

Для доступу до членів структури ми використовуємо екземпляр структури та оператор dot (.). Наприклад, щоб отримати доступ до віку учасника struct Person:

p.age = 27;

Ми отримали доступ до віку учасника struct Person, використовуючи примірник struct, с. Потім ми встановили значення віку учасника на 27.

Приклад 1:

#include using namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть у нашу програму файл заголовка iostream, щоб використовувати функції, визначені в ній.
  2. Включіть std простір імен, щоб використовувати його класи, не викликаючи його.
  3. Створіть структуру з іменем Person.
  4. Початок структури тіла.
  5. Створіть член-структуру з іменем громадянство цілого типу.
  6. Створіть член структури з іменем віку цілого типу.
  7. Кінець тіла структури.
  8. Виклик функції main (). Логіку програми слід додати в тілі цієї функції.
  9. Створіть екземпляр структури Person і дайте йому ім'я p.
  10. Встановіть значення громадянства члена структури на 1.
  11. Встановіть значення віку учасника структури на 27.
  12. Надрукуйте значення громадянства члена структури на консолі поряд з іншим текстом.
  13. Надрукуйте значення віку члена структури на консолі поряд з іншим текстом.
  14. Якщо програма успішно працює, програма повинна повернути значення.
  15. Кінець функції main ().

Вказівники на структуру

Можна створити покажчик, який вказує на структуру. Це схоже на те, як створюються покажчики, що вказують на власні типи даних, такі як int, float, double тощо. Зверніть увагу, що вказівник на C ++ зберігатиме місце в пам'яті.

Приклад 2:

#include using namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть у нашу програму файл заголовка iostream, щоб використовувати його функції.
  2. Включіть простір імен std у нашу програму, щоб використовувати його класи, не викликаючи його.
  3. Створіть структуру з назвою Length.
  4. Початок тіла структури Довжина.
  5. Створіть елемент-структуру з іменами метра цілочисельного типу даних.
  6. Створіть елемент структури з іменем сантиметри цілого типу.
  7. Кінець тіла структури Довжина.
  8. Виклик функції main ().
  9. Початок тіла основної () функції.
  10. Створіть змінну покажчика * ptr та нормальну змінну l типу Length.
  11. Збережіть адресу змінної l у нашій змінній покажчика.
  12. Виведіть на консолі повідомлення з проханням ввести значення змінних лічильників.
  13. Зчитайте значення, введене користувачем за допомогою клавіатури. Тут доступ до вимірювачів функції-члена здійснюється за допомогою змінної покажчика.
  14. Виведіть на консолі повідомлення з проханням ввести значення змінних сантиметрів.
  15. Зчитайте значення, введене користувачем за допомогою клавіатури. Тут доступ до функції-члена сантиметрів здійснюється за допомогою змінної покажчика.
  16. Відображення значень, прочитаних користувачем, на консолі поряд з іншим текстом.
  17. Програма повинна повернути значення після успішного виконання.
  18. Кінець тіла основної () функції.

Структура як аргумент функції

Ви можете передати структуру функції як аргумент. Це робиться так само, як передача звичайного аргументу. Змінні структури також можуть бути передані функції. Хороший приклад, коли вам потрібно відобразити значення членів структури. Давайте продемонструємо це:

Приклад 3:

#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship<

Вихід:

Ось скріншот коду:

Пояснення коду:

  1. Включіть файл заголовка iostream до нашого файлу. Потім ми будемо використовувати його функції, не отримуючи помилок.
  2. Включіть у нашу програму простір імен std, щоб використовувати її класи. Нам не потрібно буде викликати простір імен, щоб використовувати його класи.
  3. Створіть структуру з іменем Person.
  4. Початок тіла структури Person.
  5. Створіть учасника struct Person. Член має ім'я громадянства і має ціле число.
  6. Створіть учасника struct Person. Член називається віком і має ціле число.
  7. Кінець тіла структури Person.
  8. Створіть функцію, яка приймає в якості аргументу екземпляр struct Person, p.
  9. Виклик головної функції. Значок {позначає початок основної функції main ().
  10. Створіть екземпляр struct Person і дайте йому ім'я p.
  11. Отримайте доступ до змінної громадянства члена struct, використовуючи екземпляр struct, p, і присвоївши йому значення 1.
  12. Отримайте доступ до змінної віку члена struct, використовуючи примірник struct, p, і присвоївши йому значення 27.
  13. Викликаємо функцію та передаючи їй екземпляр структури Person, p, як аргумент.
  14. Функція повинна повертати значення після успішного виконання.
  15. Кінець тіла основної () функції.
  16. Створіть тіло функції.
  17. Початок тіла функції.
  18. Отримайте доступ до значення громадянства члена struct та роздрукуйте його на консолі поряд з іншим текстом.
  19. Отримайте доступ до значення віку члена struct та роздрукуйте його на консолі поряд з іншим текстом.
  20. Кінець тіла функції.

Обмеження структури С ++

Нижче наведені обмеження конструкцій:

  • Тип даних struct не можна розглядати як вбудовані типи даних.
  • Такі оператори, як + -, та інші, не можуть використовуватися для змінних структури.
  • Структури не підтримують приховування даних. До членів структури може отримати доступ будь-яка функція, незалежно від сфери її застосування.
  • Статичні члени не можуть бути оголошені всередині тіла структури.
  • Конструктори не можна створювати всередині структури.

Короткий зміст:

  • Структура - це структура даних, яка зберігає елементи даних, що належать до різних типів.
  • Тоді як масив зберігає елементи даних подібного типу, структура зберігає елементи даних різних типів.
  • Структуру слід використовувати, коли не очікується, що елементи даних змінять значення.
  • Доступ до членів структури здійснюється за допомогою оператора dot (.).
  • Ми повинні створити екземпляр структури.
  • Для створення структури C ++ ми використовуємо ключове слово struct.
  • Покажчики, що вказують на структуру, створюються подібно до того, як створюються покажчики, які вказують на звичайні типи.
  • Структура може бути передана як аргумент функції так само, як передаються звичайні функції.