Erinevus struktuuri ja klassi vahel

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 4 Mai 2024
Anonim
ТАКОЙ УЗОР ИЩУТ ВСЕ! Всего 2️⃣ ряда, а такая красота! 😍 Почему я не знала о нем раньше?!
Videot: ТАКОЙ УЗОР ИЩУТ ВСЕ! Всего 2️⃣ ряда, а такая красота! 😍 Почему я не знала о нем раньше?!

Sisu


Nii struktuur kui klass pakuvad võimalust kohandatud andmetüübi loomiseks, mida saab edaspidi kasutada eksemplaride loomiseks. C ++ laiendab klassi loomiseks struktuuri rolli. Nii struktuur kui ka klass on igas mõttes sarnased, välja arvatud üks erinevus, mille kohaselt on kogu struktuuri vaikimisi kogu liige „avalik” ja klassi vaikimisi kõik selle liikmed on „privaatsed”. Uurime struktuuri ja klassi erinevust võrdlusdiagrammi abil.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Sarnasused
  5. Järeldus

Võrdlusdiagramm

Võrdluse alusStruktuurKlass
Põhiline Kui juurdepääsu täpsustajat ei kuulutata, on vaikimisi kõik liikmed avalikud.Kui juurdepääsu täpsustajat ei kuulutata, on vaikimisi kõik liikmed privaatsed.
Deklaratsioon struktuuri_nimi {
tüüp struct_element 1;
tüüp struct_element 2;
tüüp struct_element 3;
.
.
.
};
klass klassi_nimi {
andmeliige;
liikme funktsioon;
};
Juhtum Struktuuri esinemisjuhtu nimetatakse struktuurimuutujaks.Klassi eksemplari nimetatakse objektiks.


Struktuuri määratlus

Struktuur on erinevate andmetüüpide muutujate kogum, millele viidatakse ühe nimega. Struktuurideklaratsioon moodustab malli, mida kasutatakse struktuuri eksemplari loomiseks. Struktuur kuulutatakse järgmiseks.

struct sname {tüüp struct_element1; tüüp struct_element2; tüüp struct_element3; . . . } muutuja1, muutuja2,. . ;;

Märksõna 'struct' määratleb kompilaatorile struktuuri deklareerimise. 'Nimi' tähistab struktuurile antud nime. Struktuuri deklaratsioon lõpeb alati semikooloniga, kuna seda peetakse avalduseks. Võite struktuuri esinemisjuhte deklareerida enne selle lõppu, nagu on tehtud ülaltoodud koodis (muutuja1, muutuja2), või võite deklareerida struktuuri esinemisjuhte main (), kirjutades esinemisnimele, millele eelneb struktuuri nimi.

// näide. peamine () {nimi S1, S2; }

Siin S1 ja S2 on struktuuri eksemplarid. Struktuuri eksemplare nimetatakse struktuurimuutujaks. Konstruktsiooni korpuses deklareeritud elemendile pääseb juurde struktuurimuutujate kaudu punkti (.) Operaatori abil.


// näide S1. struct_element1;

  • Samuti saab luua struktuurimassiivi, selleks peate esmalt kuulutama struktuuri ja seejärel kuulutama seda tüüpi massiivi.

// proovi struct sname sarray;

Üleval avalduses luuakse massiiv nimega „array”, mis sisaldab kümmet muutujat, ja iga muutuja on korraldatud nii, nagu see on määratletud sname.

  • Saate funktsiooni jaoks edastada struktuuri liikme ja funktsioonile kogu struktuuri.
  • Nagu täisarvu osuti, massiivi osuti, saab ka struktuuri osuti deklareerida, asetades * * struktuurimuutujate nime ette.

// näidisstruktuuri nimi * S1;

Märge:

'Struktuuri' elemendid salvestatakse külgnevas mälukohas.

Klassi määratlus

Klass OOP-is määratleb uue tüübi, mis sisaldab andmeliikmeid ja liikmefunktsiooni, mida kasutatakse klassi andmeside liikmetele juurdepääsu saamiseks. Klasside eksemplare nimetatakse objektideks, millel kõigil on klassiga sama ülesehitus. Klass on loogiline abstraktsioon, seevastu objektil on füüsiline olemasolu. Klass on süntaktiliselt sarnane struktuuriga. Klassi võib kuulutada järgmiseks.

klass klassi_nimi {privaatsete andmete liikmed ja liikmefunktsioonid. access_specifier tüüpi data_member; tippige mem_funct (parameetrite loend) {. . }} objektide loend;

Siin on klass märksõna, mis kuulutab koostajale, et klass on deklareeritud. OOP peamine omadus on andmete peitmine, mis saavutatakse pakkudes kolme juurdepääsu spetsifikaati, mis on “avalik”, “privaatne”, “kaitstud”. Kui te ei määratle andmeliikmete või liikmefunktsioonide deklareerimisel klassis ühtegi ligipääsumäärajat, loetakse vaikimisi kõiki privaatseks. Avaliku juurdepääsu spetsifikaator võimaldab funktsioonidele või andmetele juurde pääseda teie programmi muudele osadele. Klassi eraviisilistele liikmetele pääseb ligi ainult selle klassi liikmetele. Kaitstud juurdepääsu spetsifikaati rakendatakse pärimise ajal. Kui olete juurdepääsu spetsifikaatori kuulutanud, ei saa seda kogu programmi jooksul muuta.

Objektid pole midagi muud kui klasside eksemplar. Klassi liikmetele pääseb sama klassi objekti juurde punkti (.) Operaatori abil.

//object.mem_funct (argumendid);

  • Objekti saab argumendina edasi anda ka funktsioonile.
  • Samuti saab luua objekti kursori.
  1. Peamine erinevus struktuuride ja klasside vahel on see, et vaikimisi on kõik struktuuri liikmed avalikud, samas kui vaikimisi on kõik klassi liikmed privaatsed.

Sarnasused:

  • C ++ puhul on nii struktuur kui klass süntaktiliselt ekvivalentsed.
  • Nii struktuur kui klass võivad kuulutada mõne oma liikme privaatseks.
  • Struktuuri või klassi nime saab kasutada iseseisva tüübina.
  • Nii struktuur kui klass toetavad pärimismehhanismi.

Järeldus:

C-struktuuril oli mõningaid piiranguid, kuna struktuur ei võimalda andmete varjamist, struktuuri andmetüüpi ei saanud käsitleda nagu sisseehitatud tüüpi, struktuurid ei toeta pärimist. C ++ struktuur ületas need piirangud. C ++ puhul on klassid struktuuri laiendatud versioon. Programmeerijal on lihtne kasutada klassi andmete hoidmiseks ja funktsioneerida nii ning struktureerida ainult andmeid.