Ennen kuin ymmärrämme luokan ja Struct-eron eroa, meidän pitäisi tietää muutamia niihin liittyviä peruskäsitteitä. Ilman ymmärrystä käsitteistä on vaikea ymmärtää eroja näiden kahden välillä.
Nämä ovat kaksi tärkeätä olio-ohjelmointiin liittyvää konseptia, ja ne muodostavat perustan toimintojen ja tiedon siirtämiselle muihin toimintoihin. Parempana ymmärtämiseksi voimme verrata sen tosielämän esimerkkiin. Luokkaa voidaan pitää kauppana, ja esine voi olla mikä tahansa yksittäinen, erityinen myymälä, kuten päivittäistavarat, paperitavarat, hedelmät jne. Kaikilla esineillä on pääluokan - kaupan - yhteiset ominaisuudet, ja puolestaan esineillä voi olla omat yksinomaiset ominaisuutensa, kuten tietty muotoilu, valaistus jne. Esineiden kautta voimme tosiasiallisesti käyttää luokkaa; ne muodostavat luokan esiintymät.
Luokan syntaksi
Luokkakauppa
julkiset jousiasiat;
julkinen merkkijonojen suunnittelu;
Objektin syntaksi
Kauppa ruokakauppa = uusi myymälä ();
Store Stationery = uusi myymälä ();
Struct sisältää vain tiedot, ja siksi siitä on apua määritellä yksittäiset tietovaatimukset Struct-objektien kautta. Toisin kuin luokka, sillä ei ole toimintoja. Tässä on sen syntaksi:
struct grocery_entrance
char sisäänkäynninimi [50];
int sisäänkäynnin_koko;
päivittäistavarakauppa;
Kaikki kaupat voivat käyttää Struct-sisäänkäyntiä yksilöllisillä nimillä ja kokoilla.
Se on samanlainen kuin poika, joka perii isänsä omaisuuden, ja poika puolestaan voi lisätä myös joitain muita omaisuutensa. Luokka voi olla joko perusluokka tai johdettu luokka, jossa ensimmäistä voidaan pitää emäksenä muodostamaan jälkimmäinen. Johdettu luokka lisää itselleen muutamia muita ominaisuuksia sen lisäksi, mitä se saa perusluokasta. Kun tarkastelemme yllä olevaa esimerkkiä, ruokakauppa voidaan silti johtaa tiettyyn ruokakauppaan, kuten XYZ-ruokakauppaan.
Nyt kun olemme perehtyneet peruskäsitteisiin, voimme perehtyä todelliseen eroon luokan ja Structin välillä.
Demo obj = uusi esittely ();
Tämä tarkoittaa, että meidän on käytettävä avainsanaa 'uusi' luotaessa luokan objekteja. Tätä ei tarvita luotaessa rakojen objekteja. Katso vain heidän syntaksiaan:
Demo obj;
Se toimii täydellisesti ilman avainsanaa "uusi".
Koska luokat ovat joustavampia tietojen ja toimintojen käsittelyssä yhdessä, voimme käyttää sitä, kun käytetyt objektit ovat monimutkaisia ja suuria. Esimerkissämme Mall voi käyttää luokkaa 'kauppa' ilmaisemaan järjestelmää paremmin. Radat rajoittuvat kuitenkin pienempiin esineisiin, koska ne ovat suhteellisen vähemmän tehokkaita kuin luokat. Siksi, jos suunnittelet oman myymälän, rakeet ovat parempi valinta.
Olet ehkä kuullut termit ”nyrkkeily” ja ”nyrkkeily” muuntaaksesi Structin luokkaan ja päinvastoin. Vaikka nämä ovat tehokkaita prosesseja, jotka auttavat meitä muuntamisessa, niitä tulisi käsitellä varoen. Koska tämä vaikuttaa suoraan muistipaikkoihin, järjestelmämme suorituskykyyn on valtava vaikutus. Lisäksi se vaikuttaa jätteiden keräysprosesseihin ja johtaa järjestelmän yleiseen tehottomuuteen. Siksi käytä näitä muunnoksia vain tarvittaessa.
Katsokaamme edellä mainitut erot taulukkomuodossa.
S.No | käsitteet | erot | |
luokka | struct | ||
1 | Uudelleenkäytettävyyttä | Täysin uudelleenkäytettävissä | Ei uudelleenkäytettävissä |
2 | näkyvyys | Kaikki luokan toiminnot ovat näkyvissä sen esineillä | Struct-objektin tiedot eivät ole näkyvissä saman rakenteen muille objekteille |
3 | Ohita ohje ja ohita arvo | Käyttää ohitse | Käyttää arvoa |
4 | perintö | Luokan toiminnot voidaan periä alaluokista; sallii perinnön | Älä koskaan salli perintöä |
5 | Oletusnäkyvyys | Kaikki luokan jäsenet ovat oletuksena yksityisiä | Kaikki Struct-jäsenet ovat oletuksena julkisia |
6 | Koko tyhjänä | Tyhjän luokan koko on 1 tavu | Tyhjän rainan koko on 0 tavua |
7 | Roskakokoelma | Koska se käyttää ohimennen, jätteiden keräys on mahdollista | Koska jätteiden keruu ei ole mahdollista, se ei ole mahdollista |
8 | Muistin hallinta | Jätekeräysprosessin helppous auttaa tehokkaassa muistinhallinnassa | Roskakorin puute johtaa huonoon muistin hallintaan |
9 | Constructors | Mahdollistaa kaiken tyyppiset rakentajat, kuten parametrien kanssa tai ilman | Sallii vain parametrisoidut rakentajat |
10 | purkajat | Voi käyttää sitä | Ei voi käyttää sitä |
11 | Jäsenmuuttujien alustus | Mahdollistaa jäsenmuuttujien suoran alustuksen | Ei salli jäsenmuuttujien suoraa sanan alustamista |
12 | Objektin luominen | Objektin luomisessa on käytettävä avainsanaa 'uusi' | Avainsanan 'uusi' käyttäminen objektin luomisessa on valinnainen |
13 | Milloin käyttää? | Parempi isommille ja monimutkaisille kohteille, joissa perintö vaaditaan | Parempi pienille ja yksinkertaisille kohteille, joissa perinnöllä ei ole merkitystä. |
Olemme melkein kattaneet kaikki erot luokan ja Structin välillä, ja jos sinusta tuntuu, että jotain puuttuu, ota meihin yhteyttä. Oppitaan yhdessä ja hyödynnetään sitä tietoa!