C++ Побудова з прикладом

⚡ Розумний підсумок

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

  • 📦 Різні типи даних: Структура групує змінні різного типу під одним користувацьким ім'ям.
  • 🔑 ключове слово struct: Визначте структуру за допомогою ключового слова struct, а потім перелічіть її члени у фігурних дужках.
  • 🧱 Створення екземплярів: Автор Person p створює структурну змінну та виділяє їй пам'ять.
  • 🎯 Оператор крапки: Зчитати або встановити будь-який член через екземпляр, як у p.age = 27.
  • ➡️ Вказівники та функції: Структура працює з вказівниками та передає дані функції як звичайний аргумент.
  • 🤖 Допомога AI: GitHub Copilot та інші помічники штучного інтелекту створюють визначення структур та доступ до учасників з коментаря.

C++ Структуру

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

СТРУКТУРА – це C++ структура даних, яку можна використовувати для спільного зберігання елементів різних типів даних. в C++Структура — це тип даних, визначений користувачем. Структура створює тип даних для групиping елементи різних типів даних в рамках одного типу даних.

Наприклад:

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

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

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

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

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

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

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

Синтаксис:

struct struct_name  
{  
     // struct members
}   

У наведеному вище синтаксисі ми використали ключове слово struct. struct_name — це ім’я структури.

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

Наприклад:

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

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

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

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

Person p;

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

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

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

p.age = 27;

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

Приклад 1:

#include <iostream>    
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;
}

вихід:

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

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

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

Code Пояснення:

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

Покажчики на структуру

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

Приклад 2:

#include <iostream>
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;
}

вихід:

Покажчики на структуру

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

Покажчики на структуру

Code Пояснення:

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

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

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

Приклад 3:

#include<iostream>
using 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<<endl;
	cout << " Person age: " << p.age;
}

вихід:

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

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

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

Code Пояснення:

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

Обмеження a C++ структура

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

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

Поширені запитання

In C++ Структура та клас майже ідентичні. Єдина реальна відмінність полягає в доступі за замовчуванням: члени структури за замовчуванням є публічними, тоді як члени класу є приватними. Обидва підтримують функції-члени, конструктори та успадкування.

Структура AC містить лише дані, і ви повинні писати структуру перед кожним оголошенням змінної. A C++ Структура також може включати функції-члени, конструктори та специфікатори доступу, а ключове слово struct є необов'язковим під час оголошення змінних.

Оголосіть структуру, а потім визначте її масив, наприклад, Person people[3]. Кожен елемент є повною структурою, а доступ до членів здійснюється за допомогою people[0].age. Масиви структур зберігають багато записів одного типу разом.

Вкладена структура — це структура, оголошена як член всередині іншої структури. Вона групує пов'язані піддані, такі як структура Date, розміщена всередині структури Employee. Ви можете дістатися до внутрішніх членів, об'єднавши оператор крапки.

Розмір приблизно дорівнює сумі його членів плюс відступ, який компілятор додає для вирівнювання, тому sizeof може перевищувати загальну кількість. Функції-члени нічого не додають. Упорядкування членів за розміром зменшує невикористане відступ.

Використовуйте оператор стрілки, коли утримуєте вказівник на структуру. Замість (*ptr).age, скорочення ptr->age зчитує той самий член. Оператор крапки працює з прямим екземпляром, а не з вказівником.

Так. Помічники кодування зі штучним інтелектом перетворюють короткий запит або коментар на повноцінний C++ структура, включаючи члени, конструктори та доступ до полів. Завжди перевіряйте згенеровані типи даних та вирівнювання, оскільки ШІ може не враховувати вимоги, специфічні для проекту.

Так. Копілот GitHub пропонує визначення структур, змінні-члени та доступ за допомогою крапки або стрілки під час введення тексту в редакторі. Він добре справляється з повторюваними шаблонами, хоча вам все одно слід перевірити типи, доповнення та логіку перед компіляцією.

Підсумуйте цей пост за допомогою: