Razlika med strukturo in razredom
Vsebina
Struktura in razred omogočata ustvarjanje prilagojene vrste podatkov, ki jo lahko uporabimo za ustvarjanje primerkov. C ++ širi vlogo strukture za ustvarjanje razreda. Struktura in razred sta si v vseh pogledih podobna, razen ene razlike je, da ima privzeto struktura vsakega člana kot "javnega", razred pa privzeto vsega člana "zasebnega". Preučimo razliko med strukturo in razredom s pomočjo primerjalnega grafikona.
- Primerjalna tabela
- Opredelitev
- Ključne razlike
- Podobnosti
- Zaključek
Primerjalna tabela
Osnove za primerjavo | Struktura | Razred |
---|---|---|
Osnovni | Če specifikator dostopa ni prijavljen, so vsi člani privzeto javni. | Če specifikator dostopa ni prijavljen, so privzeto vsi člani zasebni. |
Izjava | struct structure_name { vnesite struct_element 1; vnesite struct_element 2; vnesite struct_element 3; . . . }; | class class_name { podatkovni član; članska funkcija; }; |
Primerek | Primerek strukture imenujemo strukturna spremenljivka. | Primerek razreda se imenuje objekt. |
Opredelitev strukture
Struktura je zbirka spremenljivk različnih vrst podatkov, na katere se sklicuje eno ime. Izjava strukture tvori predlogo, ki se uporablja za ustvarjanje primerka strukture. Struktura je razglašena za naslednjo.
Ime s strukturo {vrsta struct_element1; vpišite struct_element2; vpišite struct_element3; . . . } spremenljivka1, spremenljivka2,. . .;
Ključna beseda „struct“ določa prevajalniku, da je struktura deklarirana. 'Ime' predstavlja ime strukture. Deklaracija strukture se vedno konča s podpičjem, saj velja kot izjava. Lahko primere strukture pred njenim prenehanjem deklarirate, kot je bilo storjeno v zgornji kodi (spremenljivka1, spremenljivka2) ali pa prijavite primerek strukture v main (), tako da napišete ime primerka, ki je pred imenom imena strukture.
// primer. main () {ime S1, S2; }
Tu sta S1 in S2 primera strukture. Primere strukture imenujemo "strukturna spremenljivka". Element, deklariran v telesu strukture, lahko dostopate prek spremenljivk strukture z uporabo operaterja dot (.).
// primer S1. struct_element1;
- Ustvarite lahko tudi niz struktur, za to morate najprej prijaviti strukturo in nato razglasiti matriko te vrste.
// vzorec sarray strukturnih imen;
Zgornji stavek ustvari matriko z imenom 'sarray', ki vsebuje deset spremenljivk, in vsaka spremenljivka je organizirana, kot je definirano v 'sname'.
- Funkcijo lahko prenesete član strukture in funkciji lahko prenesete celotno strukturo.
- Tako kot celoten kazalec, kazalec matrike, lahko tudi kazalec strukture deklariramo tako, da na ime spremenljivk strukture postavimo »*«.
Opomba:
Elementi strukture so shranjeni na neprekinjenem pomnilniškem mestu.
Opredelitev razreda
Razred v OOP definira novo vrsto, ki vsebuje podatkovne člane in funkcijo članov, ki se uporabljajo za dostop do podatkovnih članov razreda. Primere razredov imenujemo "predmeti", od katerih ima vsaka isto organizacijo kot razred. Razred je logična abstrakcija, medtem ko ima predmet fizični obstoj. Razred je skladno podoben strukturi. Razred je mogoče razglasiti kot sledi.
class class_name {zasebni podatki in članske funkcije. type_specifier type data_member; vnesite mem_funct (seznam parametrov) {. . }} seznam predmetov;
Tu je razred ključna beseda, ki prevajalniku sporoči, da je bil razred razglašen. Glavna značilnost OOP je skrivanje podatkov, ki je doseženo z zagotavljanjem treh dostopnih specifikatorjev, ki so "javni", "zasebni", "zaščiteni". Če pri razglasitvi podatkovnih članov ali funkcij članov ne določite nobenega specifikatorja dostopa v razredu, se privzeto vsi štejejo za zasebne. Specifik javnega dostopa dovoljuje dostop do funkcij ali podatkov v drugih delih vašega programa. Do zasebnih članov razreda lahko dostopa le samo član tega razreda. Med dedovanjem se uporablja zaščiten specifikator dostopa. Ko razglasite specifikator dostopa, ga ni mogoče spremeniti v celotnem programu.
Predmeti niso nič drugega kot primerek razredov. Do članov istega razreda dostop do članov razreda uporablja operator pike (.).
//object.mem_funct (argumenti);
- Predmet se lahko prenese tudi kot argument funkcije.
- Ustvari se lahko tudi kazalec na predmet.
- Glavna razlika med strukturami in razredi je v tem, da so privzeto vsi člani strukture javni, medtem ko so privzeto vsi člani razreda zasebni.
Podobnosti:
- V C ++ sta si struktura in razred skladenjsko enakovredni.
- Tako struktura kot razred lahko nekatere svoje člane razglasijo za zasebne.
- Ime strukture ali razreda se lahko uporablja kot samostojna vrsta.
- Tako struktura kot razred podpirata mehanizem dedovanja.
Zaključek:
Struktura v C je imela nekatere omejitve, saj struktura ne dovoljuje skrivanja podatkov, "strukturnega" podatkovnega tipa ni mogoče obravnavati kot vgrajene tipe, strukture ne podpirajo dedovanja. Struktura v C ++ je presegla te omejitve. V C ++ so razredi razširjena različica strukture. Programerju je v razredu enostavno uporabiti za shranjevanje podatkov in delovanje obeh ter strukturo samo za hrambo podatkov.