logo

C++ структури

В C++ класовете и структурите са чертежи, които се използват за създаване на екземпляр на клас. Структурите се използват за леки обекти като правоъгълник, цвят, точка и др.

За разлика от класа, структурите в C++ са стойностен тип, отколкото референтен тип. Полезно е, ако имате данни, които не са предназначени да бъдат модифицирани след създаването на структура.

преименуване на директория

C++ структура е колекция от различни типове данни. Той е подобен на класа, който съдържа различни типове данни.

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

 struct structure_name { // member declarations. } 

В горната декларация структура се декларира чрез предшестване на struct ключова дума последвано от идентификатора (име на структура). Вътре във фигурните скоби можем да декларираме променливите членове от различни типове. Помислете за следната ситуация:

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

В горния случай Student е структура, която съдържа три променливи име, id и възраст. Когато структурата е декларирана, не се разпределя памет. Когато се създаде променлива на структура, тогава се разпределя паметта. Нека разберем този сценарий.

Как да създадете екземпляр на структура?

Структурната променлива може да се дефинира като:

Студент s;

история в java

Тук s е структурна променлива от тип Студент . Когато структурната променлива бъде създадена, паметта ще бъде разпределена. Структурата на Student съдържа една променлива char и две целочислени променливи. Следователно паметта за една променлива char е 1 байт, а две int ще бъдат 2*4 = 8. Общата памет, заета от променливата s, е 9 байта.

Как да получите достъп до променливата на структурата:

Променливата на структурата може да бъде достъпна чрез просто използване на екземпляра на структурата, последван от оператора точка (.) и след това полето на структурата.

Например:

 s.id = 4; 

В горното изявление ние осъществяваме достъп до полето id на структурата 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 име_на_структура
{
// тяло на структурата.
}
Синтаксис на класа:

клас име_на_клас
{
// тяло на класа.
}
Екземплярът на структурата е известен като „Структурна променлива“. Екземплярът на класа е известен като „Обект на класа“.