Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp struktūros ir klasės

Tiek struktūra, tiek klasė suteikia galimybę sukurti pritaikytą duomenų tipą, kurį galima toliau naudoti kuriant atvejus. C ++ plečia struktūros vaidmenį kuriant klasę. Ir struktūra, ir klasė visais atžvilgiais yra panašios, išskyrus vieną skirtumą, kad pagal nutylėjimą struktūra turi visus savo narius kaip „viešus“, o klasė pagal nutylėjimą turi visus savo narius „privatus“. Panagrinėkime skirtumą tarp struktūros ir klasės naudojant palyginimo lentelę.

Palyginimo diagrama

Palyginimo pagrindasStruktūraKlasė
PagrindinisJei prieigos specifikatorius nėra deklaruojamas, visi nariai yra „vieši“.Jei prieigos specifikatorius nėra deklaruojamas, pagal nutylėjimą visi nariai yra „privatūs“.
Deklaracijastruct structure_name {
type struct_element 1;
type struct_element 2;
type struct_element 3;
.
.
.
};
klasės klasės_pavadinimas {
duomenų narys;
nario funkcija;
};
Instancija„Struktūros“ pavyzdys vadinamas „struktūros kintamuoju“.„Klasės“ instancija vadinama „objektu“.

Struktūros apibrėžimas

Struktūra yra skirtingų duomenų tipų kintamųjų rinkinys, visi nurodomi vienu pavadinimu. Struktūros deklaracija sudaro šabloną, naudojamą struktūros egzemplioriui sukurti. Struktūra yra paskelbta taip.

 struct sname {type struct_element1; type struct_element2; type struct_element3; . . . } kintamasis1, kintamasis2, . . .; 

Raktinis žodis „struct“ kompiliatoriui apibrėžia, kad yra deklaruojama struktūra. „Sname“ reiškia struktūrai suteiktą pavadinimą. Struktūros deklaracija visada nutraukiama kabliataškiu, nes jis laikomas pareiškimu. Struktūros egzempliorius galite paskelbti prieš nutraukiant, kaip nurodyta aukščiau esančiame kode (1 kintamasis, kintamasis2), arba galite nurodyti struktūros egzempliorių pagrindiniame (), rašydami egzemplioriaus pavadinimą prieš pavadinimo pavadinimą.

 // pavyzdys. pagrindinis () {sname S1, S2; } 

Čia S1 ir S2 yra struktūros pavyzdžiai. Struktūros atvejai vadinami „struktūros kintamuoju“. Struktūros viduje deklaruotas elementas gali būti pasiekiamas per struktūrinius kintamuosius naudojant taško (.) Operatorių.

 // pavyzdys S1. struct_element1; 
  • Struktūros masyvas taip pat gali būti sukurtas, todėl pirmiausia turite deklaruoti struktūrą ir tada paskelbti tokio tipo masyvą.
 // pavyzdys struktūrinis sname sarray [10]; 

Anksčiau pateiktas pareiškimas sukuria masyvą su pavadinimu „sarray“, kuriame yra dešimt kintamųjų, ir kiekvienas kintamasis yra organizuojamas taip, kaip apibrėžta „sname“.

  • Struktūros narį galite perduoti funkcijai, o visą struktūrą galite perduoti funkcijai.
  • Kaip ir sveikojo skaičiaus rodyklė, masyvo rodyklė, struktūros rodyklė taip pat gali būti deklaruojama pateikiant „*“ struktūros kintamųjų pavadinimo priekyje.
 // pavyzdys struktūrinis sname * S1; 

Pastaba:

„Struktūros“ elementai saugomi gretimoje atminties vietoje.

Klasės apibrėžimas

OOP klasė apibrėžia naują tipą, kuriame yra duomenų nariai ir nario funkcija, kurie naudojami prieigos prie klasės duomenų nariams. Klasių pavyzdžiai vadinami „objektais“, kurių kiekviena turi tą pačią organizaciją kaip ir klasė. Klasė yra loginė abstrakcija, o objektas turi fizinę egzistenciją. Klasė sintaksiškai panaši į struktūrą. Klasė gali būti paskelbta kaip sekanti.

 klasės klasės_pavadinimas {privačių duomenų nariai ir narių funkcijos. access_specifier tipas data_member; įveskite mem_funct (parametrų sąrašas) {. . }} objektų sąrašas; 

Čia klasė yra raktinis žodis, kuris kompiliatoriui deklaruoja, kad klasė buvo paskelbta. Pagrindinis OOP bruožas yra duomenų slepimas, kuris pasiekiamas suteikiant tris prieigos specifikus, kurie yra „vieši“, „privatūs“, „saugomi“. Jei nenurodote jokios prieigos specifikacijos klasėje, deklaruodami duomenų narius ar narių funkcijas, pagal nutylėjimą visi laikomi privačiais. Viešojo prieigos specifikatorius leidžia naudotis funkcijomis ar duomenimis, kuriuos gali pasiekti kitos programos dalys. Privataus klasės nariams gali pasiekti tik tos klasės narys. Saugomos prieigos specifikatorius taikomas paveldėjimo metu. Kai paskelbiate prieigos specifiką, jis negali būti keičiamas per visą programą.

Objektai yra tik klasių pavyzdys. Klasės nariams pasiekiama tos pačios klasės objektas, naudojant taškų (.) Operatorių.

 //object.mem_funct (argumentai); 
  • Objektas taip pat gali būti perduodamas kaip argumentas funkcijai.
  • Taip pat galima sukurti rodyklę į objektą.

Pagrindiniai skirtumai tarp struktūros ir klasės

  1. Pagrindinis skirtumas tarp struktūrų ir klasių yra tas, kad pagal nutylėjimą visi struktūros nariai yra vieši, o pagal nutylėjimą visi klasės nariai yra privatūs.

Panašumai:

  • C ++ struktūroje ir klasėje sintaksiškai lygiaverčiai.
  • Tiek struktūra, tiek klasė gali paskelbti kai kuriuos jų narius privačius.
  • Konstrukcijos ar klasės pavadinimą galima naudoti kaip atskirą tipą.
  • Tiek struktūra, tiek klasė palaiko paveldėjimo mechanizmą.

Išvada:

C struktūra turėjo kai kuriuos apribojimus, nes struktūra neleidžia paslėpti duomenų, „struktūros“ duomenų tipas negali būti traktuojamas kaip įmontuoti tipai, struktūros nepalaiko paveldėjimo. „C ++“ struktūra nugalėjo šiuos apribojimus. C ++ klasėse yra išplėstinė struktūros versija. Programuotojui lengva naudoti klasę, kad būtų galima laikyti duomenis ir veikti tik ir struktūrizuoti tik duomenų saugojimui.

Top