У 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<<'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'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<<'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 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</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<<\'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 'Structure variable'. </td> <td>The instance of the class is known as 'Object of the class'.</td> </tr> </table></\'area>
Структура проти класу
Структура | Клас |
---|---|
Якщо специфікатор доступу не оголошено явно, тоді за замовчуванням специфікатор доступу буде відкритим. | Якщо специфікатор доступу не оголошено явно, тоді за замовчуванням специфікатор доступу буде закритим. |
Синтаксис структури: struct ім'я_структури { // тіло структури. } | Синтаксис класу: клас class_name { // тіло класу. } |
Екземпляр структури відомий як «Змінна структури». | Екземпляр класу відомий як «Об’єкт класу». |