Ero rakenteen ja luokan välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 4 Saattaa 2024
Anonim
Ero rakenteen ja luokan välillä - Tekniikka
Ero rakenteen ja luokan välillä - Tekniikka

Sisältö


Sekä rakenne että luokka tarjoaa tavan luoda räätälöity tietotyyppi, jota voidaan käyttää edelleen luomaan esiintymät. C ++ laajentaa rakenteen roolia luokan luomiseksi. Sekä rakenne että luokka ovat kaikilta osiltaan samankaltaiset paitsi yksi ero, jonka mukaan kaikilla rakenteilla on oletuksena kaikki jäsenet “julkisina” ja luokan oletusarvoisesti kaikki jäsenet ovat “yksityisiä”. Tutkitaan rakenteen ja luokan eroa vertailukaavion avulla.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. yhtäläisyyksiä
  5. johtopäätös

Vertailutaulukko

Vertailun perusteetRakenneluokka
perustiedot Jos käyttöoikeustietoja ei ilmoiteta, kaikki jäsenet ovat oletuksena julkisia.Jos käyttöoikeustietoja ei ilmoiteta, kaikki jäsenet ovat oletuksena yksityisiä.
ilmoitus rakenteen rakenteen_nimi {
tyyppi struct_element 1;
tyyppi struct_element 2;
tyyppi struct_element 3;
.
.
.
};
luokka luokan_nimi {
datajäsen;
jäsentoiminto;
};
Ilmentymä Rakenteen esiintymää kutsutaan rakennemuuttujaksi.Luokan esiintymää kutsutaan esineeksi.


Määritelmä rakenne

Rakenne on kokoelma erilaisista tietotyypeistä koostuvia muuttujia, joihin viitataan yhdellä nimellä. Rakenneilmoitus muodostaa mallin, jota käytetään rakenteen esiintymän luomiseen. Rakenne julistetaan seuraavana.

struct sname {tyyppi struct_element1; tyyppi struct_element2; tyyppi struct_element3; . . . } muuttuja1, muuttuja2,. . .;

Avainsana 'struct' määrittää kääntäjälle, että rakenne ilmoitetaan. 'Nimi' edustaa rakenteelle annettua nimeä. Rakenneilmoitus lopetetaan aina puolipisteellä, koska sitä pidetään lauseena. Voit ilmoittaa rakenteen esiintymät ennen sen lopettamista, kuten yllä olevassa koodissa (muuttuja1, muuttuja2), tai voit ilmoittaa rakenteen esiintymän main (), kirjoittamalla ilmentymän nimen, jota edeltää rakenteen nimi.

// esimerkki. pää () {nimi S1, S2; }

Tässä S1 ja S2 ovat rakenteen esiintymät. Rakenteen esiintymiä kutsutaan ”rakennemuuttujaksi”. Rakennekappaleen sisällä ilmoitettuun elementtiin pääsee rakennemuuttujien kautta pisteoperaattorin (.) Avulla.


// esimerkki S1. struct_element1;

  • Myös rakenneryhmä voidaan luoda, tätä varten sinun on ensin ilmoitettava rakenne ja sitten ilmoitettava kyseisen tyyppinen ryhmä.

// näyte struct sname sarray;

Lauseen yläpuolella luodaan taulukko nimellä 'sarray', joka sisältää kymmenen muuttujaa, ja jokainen muuttuja on järjestetty 'sname'-määritelmän mukaisesti.

  • Voit siirtää rakenteen jäsenen funktion ja voit siirtää koko rakenteen toiminnolle.
  • Kuten kokonaislukuosoitin, taulukkoosoitin, rakenneosoitin voidaan myös ilmaista asettamalla '*' rakennemuuttujien nimen eteen.

// näyterakenteen nimi * S1;

merkintä:

'Rakenne' elementit tallennetaan viereiseen muistipaikkaan.

Määritelmä luokka

OOP-luokka määrittelee uuden tyypin, joka sisältää datajäsenet ja jäsentoiminnot, joita käytetään luokan datajäsenten käyttämiseen. Luokkien esiintymät kutsutaan ”objekteiksi”, joilla jokaisella on sama organisaatio kuin luokalla. Luokka on looginen abstraktio, kun taas esineellä on fyysinen olemassaolo. Luokka on syntaktisesti samanlainen kuin rakenne. Luokka voidaan julistaa seuraavana.

luokka luokan_nimi {yksityiset datajäsenet ja jäsentoiminnot. access_specifier type data_member; kirjoita mem_funct (parametriluettelo) {. . }} esineluettelo;

Tässä luokka on avainsana, joka ilmoittaa kääntäjälle, että luokka on julistettu. OOP: n pääpiirteenä on tietojen piilottaminen, joka saadaan aikaan tarjoamalla kolme pääsymääritystä, jotka ovat “julkinen”, “yksityinen”, “suojattu”. Jos et määritä luokassa pääsymääritettä tietojäsenten tai jäsentoimintojen ilmoittamisen yhteydessä, kaikkia pidetään oletuksena yksityisinä. Julkisen saatavuuden määrittely sallii ohjelman muiden osien käyttää toimintoja tai tietoja. Vain luokan jäsen pääsee luokan yksityisiin jäseniin. Suojattua käyttöoikeustiedot määritetään perimisen aikana. Kun olet julistanut käyttöoikeustiedot, sitä ei voi muuttaa koko ohjelmassa.

Objektit ovat vain luokkien esimerkkejä. Saman luokan objekti pääsee luokan jäsenille pisteoperaattorilla (.).

//object.mem_funct (argumentit);

  • Kohde voidaan myös siirtää argumentiksi funktiolle.
  • Kohteen osoitin voidaan myös luoda.
  1. Tärkein ero rakenteiden ja luokkien välillä on, että oletuksena kaikki rakenteen jäsenet ovat julkisia, kun taas kaikki luokan jäsenet ovat oletuksena yksityisiä.

yhtäläisyyksiä:

  • C ++: ssa sekä rakenne että luokka ovat syntaktisesti samanarvoisia.
  • Sekä rakenne että luokka voivat julistaa osan jäsenistään yksityisiksi.
  • Rakenteen tai luokan nimeä voidaan käyttää erillisenä tyyppinä.
  • Sekä rakenne että luokka tukevat perintömekanismia.

johtopäätös:

C: n rakenteella oli joitain rajoituksia, koska rakenne ei salli tietojen piilottamista, 'rakenteellista' tietotyyppiä ei voitu käsitellä kuin sisäänrakennettuja tyyppejä, rakenteet eivät tue perintöä. C ++: n rakenne ylitti nämä rajoitukset. C ++ -luokassa luokat ovat rakenteen laajennettu versio. Ohjelmoijan on helppo käyttää luokkaa tietojen pitämiseen ja toimimaan sekä, että rakenne vain tietojen pitämiseen.