logo

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

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

На відміну від класу, структури в C++ є типом значення, ніж типом посилання. Це корисно, якщо у вас є дані, які не планується змінювати після створення структури.

скільки міст в США

Структура C++ це сукупність різних типів даних. Це схоже на клас, який містить різні типи даних.

Синтаксис структури

 struct structure_name { // member declarations. } 

У наведеній вище декларації структура оголошується за допомогою передування struct ключове слово за яким йде ідентифікатор (назва структури). Усередині фігурних дужок ми можемо оголосити змінні-члени різних типів. Розглянемо таку ситуацію:

 struct Student { char name[20]; int id; int age; } 

У наведеному вище випадку Student — це структура, яка містить три змінні name, id та age. Коли структура оголошена, пам'ять не виділяється. Коли створюється змінна структури, пам'ять виділяється. Давайте розберемося в цьому сценарії.

Як створити екземпляр Structure?

Структурну змінну можна визначити як:

Студент s;

дійсні ідентифікатори в java

Тут s є структурною змінною типу студент . Коли структурна змінна буде створена, пам'ять буде виділена. Структура Student містить одну змінну char і дві цілочисельні змінні. Отже, пам’ять для однієї змінної char становить 1 байт, а два int будуть 2*4 = 8. Загальна пам’ять, яку займає змінна s, становить 9 байт.

Як отримати доступ до змінної Structure:

Доступ до змінної структури можна отримати, просто використовуючи екземпляр структури, за яким слід оператор крапки (.), а потім поле структури.

колекції java

Наприклад:

 s.id = 4; 

У наведеному вище операторі ми отримуємо доступ до поля ідентифікатора структури Student за допомогою крапка(.) і присвоює значення 4 полю id.

Приклад структури C++

Давайте розглянемо простий приклад структури Rectangle, яка має два члени даних, ширину та висоту.

 #include using namespace std; struct Rectangle { int width, height; }; int main(void) { struct Rectangle rec; rec.width=8; rec.height=5; cout&lt;<'area of rectangle is: '<<(rec.width * rec.height)<<endl; return 0; } < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 40 </pre> <h2>C++ Struct Example: Using Constructor and Method</h2> <p>Let&apos;s see another example of struct where we are using the constructor to initialize data and method to calculate the area of rectangle.</p> <pre> #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout&lt;<'area of rectangle is: '<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as &apos;Structure variable&apos;. </td> <td>The instance of the class is known as &apos;Object of the class&apos;.</td> </tr> </table></'area></pre></'area>

Приклад структури C++: використання конструктора та методу

Давайте подивимося інший приклад структури, де ми використовуємо конструктор для ініціалізації даних і метод для обчислення площі прямокутника.

 #include using namespace std; struct Rectangle { int width, height; Rectangle(int w, int h) { width = w; height = h; } void areaOfRectangle() { cout&lt;<\'area of rectangle is: \'<<(width*height); } }; int main(void) { struct rec="Rectangle(4,6);" rec.areaofrectangle(); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Area of Rectangle is: 24 </pre> <p> <strong>Structure v/s Class</strong> </p> <table class="table"> <tr> <th>Structure</th> <th>Class</th> </tr> <tr> <td>If access specifier is not declared explicitly, then by default access specifier will be public. </td> <td>If access specifier is not declared explicitly, then by default access specifier will be private.</td> </tr> <tr> <td>Syntax of Structure: <br> <br> struct structure_name <br> { <br> // body of the structure. <br> }</td> <td>Syntax of Class: <br> <br> class class_name <br> { <br> // body of the class. <br> }</td> </tr> <tr> <td>The instance of the structure is known as &apos;Structure variable&apos;. </td> <td>The instance of the class is known as &apos;Object of the class&apos;.</td> </tr> </table></\'area>

Структура проти класу

Структура Клас
Якщо специфікатор доступу не оголошено явно, тоді за замовчуванням специфікатор доступу буде відкритим. Якщо специфікатор доступу не оголошено явно, тоді за замовчуванням специфікатор доступу буде закритим.
Синтаксис структури:

struct ім'я_структури
{
// тіло структури.
}
Синтаксис класу:

клас class_name
{
// тіло класу.
}
Екземпляр структури відомий як «Змінна структури». Екземпляр класу відомий як «Об’єкт класу».