logo

Struktūras valodā C++

Mēs bieži sastopamies ar situācijām, kad mums ir jāsaglabā datu grupa neatkarīgi no tā, vai tie ir līdzīgi datu tipi vai nelīdzīgi datu tipi. Mēs esam redzējuši C++ masīvus, kas tiek izmantoti, lai saglabātu līdzīgu datu tipu datu kopu blakus esošās atmiņas vietās.
Atšķirībā no Arrays, Struktūras valodā C++ ir lietotāja definēti datu tipi, kas tiek izmantoti nelīdzīgu datu tipu vienumu grupas glabāšanai.

Kas ir struktūra?



Struktūra ir lietotāja definēts C/C++ datu tips. Struktūra izveido datu tipu, ko var izmantot, lai grupētu iespējami dažādu veidu vienumus vienā tipā.

Struktūras valodā C++

Kā izveidot struktūru?



Struktūras izveidošanai tiek izmantots atslēgvārds “struct”. Vispārējā sintakse struktūras izveidošanai ir šāda:

struct structureName{ member1; member2; member3; . . . memberN; };>

C++ struktūrās var būt divu veidu locekļi:

    Datu dalībnieks: šie dalībnieki ir normāli C++ mainīgie. Mēs varam izveidot struktūru ar dažādu datu tipu mainīgajiem C++ valodā. Dalībnieku funkcijas: šie dalībnieki ir parastas C++ funkcijas. Kopā ar mainīgajiem mēs varam iekļaut arī funkcijas struktūras deklarācijā.

Piemērs :



operētājsistēmu piemēri

C++




// Data Members> int> roll;> int> age;> int> marks;> > // Member Functions> void> printDetails()> {> >cout<<>'Roll = '><' '; cout<<'Age = '< ' '; cout<<'Marks = '< }>

>

>

Iepriekš minētajā struktūrā datu elementi ir trīs veselu skaitļu mainīgie, kas jāuzglabā ruļļa numurs, vecums un atzīmes jebkura studenta un dalībnieka funkcija ir printDetails() kas drukā visu iepriekš minēto informāciju par jebkuru studentu.

Kā deklarēt struktūras mainīgos?

Struktūras mainīgo var deklarēt ar struktūras deklarāciju vai kā atsevišķu deklarāciju, piemēram, pamattipus.

C++




// A variable declaration with structure declaration.> struct> Point> {> >int> x, y;> } p1;>// The variable p1 is declared with 'Point'> // A variable declaration like basic data types> struct> Point> {> >int> x, y;> };> int> main()> {> >struct> Point p1;>// The variable p1 is declared like a normal variable> }>

>

>

Piezīme. Programmā C++ atslēgvārds struct nav obligāts pirms mainīgā deklarācijas. C valodā tas ir obligāts.

Kā inicializēt struktūras elementus?
Struktūras dalībnieki nevar būt inicializēts ar deklarāciju. Piemēram, šādas C programmas kompilācija neizdodas.
Bet tiek uzskatīts par pareizu C++11 un jaunākās versijās.

C++




struct> Point> {> >int> x = 0;>// COMPILER ERROR: cannot initialize members here> >int> y = 0;>// COMPILER ERROR: cannot initialize members here> };>

>

np.histogramma

>

Iepriekš minētās kļūdas iemesls ir vienkāršs, kad tiek deklarēts datu tips, tam netiek atvēlēta atmiņa. Atmiņa tiek piešķirta tikai tad, kad ir izveidoti mainīgie.

Struktūras elementus var inicializēt ar deklarāciju C++ valodā. Piemēram, šī C++ programma tiek izpildīta veiksmīgi, neradot kļūdu.

C++




// In C++ We can Initialize the Variables with Declaration in Structure.> #include> using> namespace> std;> struct> Point {> >int> x = 0;>// It is Considered as Default Arguments and no Error is Raised> >int> y = 1;> };> int> main()> {> >struct> Point p1;> >// Accessing members of point p1> >// No value is Initialized then the default value is considered. ie x=0 and y=1;> >cout <<>'x = '> << p1.x <<>', y = '> << p1.y< // Initializing the value of y = 20; p1.y = 20; cout << 'x = ' << p1.x << ', y = ' << p1.y; return 0; } // This code is contributed by Samyak Jain>

>

>

 x=0, y=1 x=0, y=20>

Struktūras elementus var inicializēt, izmantojot krokainas figūriekavas “{}”. Piemēram, tālāk norādītā ir derīga inicializācija.

C++




struct> Point {> >int> x, y;> };> int> main()> {> >// A valid initialization. member x gets value 0 and y> >// gets value 1. The order of declaration is followed.> >struct> Point p1 = { 0, 1 };> }>

>

>


Kā piekļūt struktūras elementiem?
Struktūras dalībniekiem var piekļūt, izmantojot punktu (.) operatoru.

C++




#include> using> namespace> std;> struct> Point {> >int> x, y;> };> int> main()> {> >struct> Point p1 = { 0, 1 };> >// Accessing members of point p1> >p1.x = 20;> >cout <<>'x = '> << p1.x <<>', y = '> << p1.y;> >return> 0;> }>

>

>

Izvade

x = 20, y = 1>

Kas ir struktūru masīvs?

Tāpat kā citi primitīvi datu veidi, mēs varam izveidot struktūru masīvu.

C++




#include> using> namespace> std;> struct> Point {> >int> x, y;> };> int> main()> {> >// Create an array of structures> >struct> Point arr[10];> >// Access array members> >arr[0].x = 10;> >arr[0].y = 20;> >cout << arr[0].x <<>' '> << arr[0].y;> >return> 0;> }>

>

>

Izvade

10 20>


Kas ir struktūras rādītājs?
Tāpat kā primitīvie tipi, mums var būt rādītājs uz struktūru. Ja mums ir struktūras rādītājs, dalībniekiem var piekļūt, izmantojot bultiņas ( -> ) operatoru, nevis punktu (.) operatoru.

C++

java tīmekļa pakalpojumi




#include> using> namespace> std;> struct> Point {> >int> x, y;> };> int> main()> {> >struct> Point p1 = { 1, 2 };> >// p2 is a pointer to structure p1> >struct> Point* p2 = &p1;> >// Accessing structure members using> >// structure pointer> >cout ' ' return 0; }>

>

>

Izvade

1 2>

Kas ir struktūras elementu izlīdzināšana?
Skat Uzziniet vairāk par atšķirībām starp struktūrām un klasi C++ valodā .