Atšķirība starp struktūru un klasi

Autors: Laura McKinney
Radīšanas Datums: 1 Aprīlis 2021
Atjaunināšanas Datums: 4 Maijs 2024
Anonim
LABĀKIE Vingrinājumi svara zaudēšanai
Video: LABĀKIE Vingrinājumi svara zaudēšanai

Saturs


Gan struktūra, gan klase nodrošina veidu, kā izveidot pielāgotu datu tipu, kuru tālāk var izmantot, 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 struktūrai pēc noklusējuma visi locekļi ir “publiski”, un klasei pēc noklusējuma visi dalībnieki ir “privāti”. Izpētīsim atšķirību starp struktūru un klasi, izmantojot salīdzināšanas diagrammu.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Līdzības
  5. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsUzbūveKlase
Pamata Ja piekļuves specifikators netiek deklarēts, pēc noklusējuma visi dalībnieki ir publiski.Ja piekļuves specifikators netiek deklarēts, pēc noklusējuma visi dalībnieki ir privāti.
Deklarācija struktūras struktūra_nosaukums {
tips struct_element 1;
tips struct_element 2;
tips struct_element 3;
.
.
.
};
klase klases_vārds {
datu biedrs;
biedra funkcija;
};
Piemēram Struktūras gadījumu sauc par struktūras mainīgo.Klases instanci sauc par objektu.


Struktūras definīcija

Struktūra ir dažādu datu tipu mainīgo lielumu kolekcija, uz kuriem visi atsaucas ar vienu vārdu. Struktūras deklarācija veido veidni, ko izmanto struktūras gadījuma izveidošanai. Struktūra tiek deklarēta kā sekojoša.

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

Atslēgvārds “struct” kompilatoram norāda, ka struktūra tiek deklarēta. “Vārds” apzīmē struktūras nosaukumu. Struktūras deklarāciju vienmēr izbeidz ar semikolu, jo to uzskata par paziņojumu. Jūs varat deklarēt struktūras gadījumus pirms tās izbeigšanas, kā izdarīts iepriekš minētajā kodā (mainīgais1, mainīgais2), vai arī jūs varat deklarēt struktūras gadījumu galvenajā (), rakstot gadījuma nosaukumu pirms struktūras nosaukuma.

// piemērs. galvenā () {uzvārds S1, S2; }

Šeit S1 un S2 ir struktūras gadījumi. Struktūras gadījumus sauc par “struktūras mainīgo”. Elementam, kas deklarēts struktūras korpusā, var piekļūt, izmantojot struktūras mainīgos, izmantojot punktveida (.) Operatoru.


// piemērs S1. struct_element1;

  • Var izveidot arī struktūras masīvu, lai to izdarītu, vispirms jādeklarē struktūra un pēc tam jādeklarē šāda veida masīvs.

// paraugstruktūra sname sarray;

Virs paziņojuma tiek izveidots masīvs ar nosaukumu “sarray”, kurā ir desmit mainīgie, un katrs mainīgais ir sakārtots, kā noteikts “uzvārds”.

  • Funkcijai var nodot struktūras locekli, bet funkcijai - visu struktūru.
  • Tāpat kā vesels skaitlis rādītājs, masīva rādītājs, struktūras rādītāju var arī deklarēt, novietojot “*” struktūras mainīgo nosaukuma priekšā.

// parauga struktūras nosaukums * S1;

Piezīme:

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

Klases definīcija

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

klase klase_nosaukums {privātu datu dalībnieki un dalībnieku funkcijas. piekļuves_specifikatora tips data_member; ierakstiet mem_funct (parametru saraksts) {. . }} objektu saraksts;

Šeit klase ir atslēgvārds, kas kompilatoram paziņo, ka klase ir deklarēta. OOP galvenā iezīme ir datu slēpšana, ko veic, nodrošinot trīs piekļuves specifikatorus, kas ir “publiski”, “privāti”, “aizsargāti”. Ja, deklarējot datu dalībniekus vai dalībnieku funkcijas, klasē nenorādāt piekļuves specifikatoru, visi pēc noklusējuma tiek uzskatīti par privātiem. Publiskās piekļuves specifikators ļauj funkcijām vai datiem piekļūt citām jūsu programmas daļām. Klases privātajiem dalībniekiem var piekļūt tikai šīs klases dalībnieks. Aizsargātas piekļuves specifikators tiek piemērots mantošanas laikā. Tiklīdz esat deklarējis piekļuves specifikatoru, to nevar mainīt visā programmā.

Objekti ir nekas cits kā klašu piemērs. Klases dalībniekiem piekļuvi tās pašas klases objektam, izmantojot punktu (.) Operatoru.

//object.mem_funct (argumenti);

  • Objektu var arī nodot kā argumentu funkcijai.
  • Var izveidot arī objekta rādītāju.
  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, turpretī visi klases dalībnieki pēc noklusējuma ir privāti.

Līdzības:

  • C ++ klasē gan struktūra, gan klase ir sintaktiski līdzvērtīgas.
  • Gan struktūra, gan klase dažus savus biedrus var pasludināt par privātiem.
  • Struktūras vai klases nosaukumu var izmantot kā atsevišķu tipu.
  • Gan struktūra, gan šķira atbalsta mantojuma mehānismu.

Secinājums:

C struktūrai bija daži ierobežojumi, jo struktūra nepieļauj datu slēpšanu, “strukturālo” datu tipu nevarēja izturēties tāpat kā ar iebūvētiem tipiem, struktūras neatbalsta mantojumu. C ++ struktūra pārsniedza šos ierobežojumus. C ++ klasēs ir struktūras paplašinātā versija. Programmētājam ir viegli izmantot klasi datu glabāšanai, kā arī funkcionēt un struktūru tikai datu glabāšanai.