Ieteicams, 2024

Redaktora Izvēle

Starpība starp struktūru un klasi

Gan struktūra, gan klase nodrošina veidu, kā izveidot pielāgotu datu tipu, ko var izmantot tālāk, lai izveidotu gadījumus. C ++ paplašina struktūras lomu, lai izveidotu klasi. Gan struktūra, gan klase ir līdzīgi visos aspektos, izņemot vienu atšķirību, ka pēc noklusējuma struktūrai ir visi dalībnieki kā “publiski”, un pēc noklusējuma klasei ir visi “privāti”. Pētīsim atšķirību starp struktūru un klasi, izmantojot salīdzināšanas diagrammu.

Salīdzinājuma diagramma

Salīdzinājuma pamatsStruktūraKlase
PamataJa piekļuves specifikators nav deklarēts, visi dalībnieki pēc noklusējuma ir “publiski”.Ja piekļuves specifikators nav deklarēts, visi dalībnieki pēc noklusējuma ir “privāti”.
Deklarācijastruct structure_name {
tipa struct_element 1;
tipa struct_element 2;
tipa struct_element 3;
.
.
.
};
klases klases_nosaukums {
datu biedrs;
biedra funkcija;
};
Gadījumā“Struktūras” gadījumu sauc par “struktūras mainīgo”.“Klases” gadījumu sauc par “objektu”.

Struktūras definīcija

Struktūra ir dažādu datu tipu mainīgo kolekcija, uz kuriem visi attiecas uz vienu nosaukumu. Struktūras deklarācija veido veidni, ko izmanto, lai izveidotu struktūras gadījumu. Struktūra ir pasludināta par sekojošu.

 struct sname {type struct_element1; tipa struct_element2; tipa struct_element3; . . . } mainīgais1, mainīgais2, . . .; 

Atslēgvārdu 'struct' definē kompilatoram, ka tiek deklarēta struktūra. “Sname” norāda uz struktūru piešķirto nosaukumu. Struktūras deklarāciju vienmēr izbeidz ar semikolu, jo tas tiek uzskatīts par paziņojumu. Struktūras gadījumus var pasludināt pirms tā izbeigšanas, kā tas ir izdarīts iepriekš minētajā kodā (mainīgais1, mainīgais2), vai arī varat paziņot struktūras struktūru galvenajā (), rakstot eksemplāra nosaukumu pirms struktūras nosaukuma.

 // piemērs. main () {sname S1, S2; } 

Šeit S1 un S2 ir struktūras struktūras. Struktūras gadījumus sauc par “struktūras mainīgo”. Struktūras struktūrā deklarēto elementu var piekļūt, izmantojot strukturālos mainīgos, izmantojot punktu (.) Operatoru.

 // piemērs S1. struct_element1; 
  • Struktūras masīvs var būt arī izveidots, tāpēc jums vispirms ir jādeklarē struktūra un pēc tam jāpaziņo šāda veida masīvs.
 // parauga struktūra sname sarray [10]; 

Iepriekš minētais paziņojums rada masīvu ar nosaukumu “sarray”, kurā ir desmit mainīgie, un katrs mainīgais ir sakārtots tā, kā noteikts “sname”.

  • Jūs varat nodot struktūras locekli funkcijai, un jūs varat nodot visu struktūru funkcijai.
  • Tāpat kā vesels skaitlis rādītājs, masīvs rādītājs, struktūru rādītājs var arī deklarēt, ievietojot '*' priekšā struktūru mainīgo nosaukumu.
 // parauga struktūra sname * S1; 

Piezīme:

“Struktūras” elementi tiek saglabāti blakus esošajā atmiņas vietā.

Klases definīcija

OOP klase definē jaunu tipu, kas satur datu dalībniekus un dalībnieka funkciju, kas tiek izmantoti, lai piekļūtu klases dalībniekiem. Klases gadījumi tiek saukti par “objektiem”, no kuriem katrai ir tāda pati organizācija kā klasei. Klase ir loģiska abstrakcija, bet objektam ir fiziska eksistence. Klase ir sintaktiski līdzīga struktūrai. Klase var tikt pasludināta par sekojošu.

 klases klases_nosaukums {privāto datu biedri un biedru funkcijas. access_specifier tips data_member; ierakstiet mem_funct (parametru saraksts) {. . }} objektu saraksts; 

Šeit klase ir atslēgvārds, kas kompilatoram paziņo, ka ir deklarēta klase. OOP galvenā iezīme ir datu slēpšana, kas tiek panākta, nodrošinot trīs piekļuves specifikācijas, kas ir “publiski”, “privāti”, “aizsargāti”. Ja jūs nedefinējat nevienu piekļuves specifikāciju klasē, deklarējot datu dalībniekus vai biedru funkcijas, pēc noklusējuma visi tiek uzskatīti par privātiem. Publiskās piekļuves specifikācija ļauj, funkcijas vai datus piekļūt citām programmas daļām. Klases privāto biedru var piekļūt tikai šīs klases biedrs. Aizsargātās piekļuves specifikators tiek izmantots mantojuma laikā. Kad esat paziņojis par piekļuves specifikāciju, to nevar mainīt visā programmā.

Objekti nav nekas cits kā klases piemērs. Klases locekļiem piekļūst tās pašas klases objekts, izmantojot dot (.) Operatoru.

 //object.mem_funct (argumenti); 
  • Objektu var arī nodot kā argumentu funkcijai.
  • Var izveidot arī rādītāju uz objektu.

Galvenās atšķirības starp struktūru un klasi

  1. Galvenā atšķirība starp struktūrām un klasēm ir tāda, ka pēc noklusējuma visi struktūras locekļi ir publiski, bet pēc noklusējuma visi klases locekļi ir privāti.

Līdzības:

  • C + + gan struktūra, gan klase ir sintaktiski ekvivalenta.
  • Gan struktūra, gan klase var deklarēt dažus no saviem biedriem privātus.
  • Struktūras vai klases nosaukumu var izmantot kā atsevišķu tipu.
  • Gan struktūra, gan klase atbalsta mantojuma mehānismu.

Secinājums:

C struktūrā bija daži no ierobežojumiem, jo ​​struktūra neļauj datu slēpšanu, datu struktūru nevar uzskatīt par iebūvētiem veidiem, struktūras neatbalsta mantojumu. C ++ struktūra pārvarēja šos ierobežojumus. C + + klasēs ir paplašināta struktūras versija. Programmētājs uzskata, ka ir viegli izmantot klasi, lai turētu datus un darbotos gan struktūru, gan tikai datu glabāšanai.

Top