Primerjalna tabela
Podlaga za primerjavo | Struktura | Razred |
---|---|---|
Osnovno | Če specifikator dostopa ni deklariran, so vsi člani privzeto 'javni'. | Če specifikacija dostopa ni deklarirana, so vsi člani privzeto 'zasebni'. |
Deklaracija | struct structure_name { tip struct_element 1; tip struct_element 2; tip struct_element 3; . . . }; | class class_name { član podatkov; funkcija člana; }; |
Primer | Primer „strukture“ se imenuje „strukturna spremenljivka“. | Primer "razreda" se imenuje "predmet". |
Opredelitev strukture
Struktura je zbirka spremenljivk različnih podatkovnih tipov, na katere se sklicuje eno ime. Deklaracija strukture tvori predlogo, ki se uporablja za ustvarjanje primerka strukture. Struktura je navedena kot sledi.
struct sname {tip struct_element1; tip struct_element2; vnesite struct_element3; . . . } spremenljivka1, spremenljivka2, . . .;
Ključna beseda „struct“ opredeljuje prevajalniku, da je struktura prijavljena. „Kača“ predstavlja ime, ki je podano strukturi. Deklaracija strukture se vedno zaključi s podpičjem, saj se šteje za izjavo. Primerke strukture lahko deklarirate pred njegovo zaključitvijo, kot je to storjeno v zgornji kodi (variable1, variable2), ali lahko deklarirate primerek strukture v main (), tako da napišete ime primerka pred imenom strukture.
// na primer. main () {sname S1, S2; }
Tu sta S1 in S2 primera strukture. Primeri strukture se imenujejo »strukturna spremenljivka«. Do elementa, ki je deklariran znotraj telesne strukture, lahko dostopamo prek strukturnih spremenljivk z uporabo operaterja pika (.).
Primer S1. struct_element1;
- Prav tako lahko ustvarite matriko strukture, zato morate najprej deklarirati strukturo in nato deklarirati matriko te vrste.
// vzorec struct sname sarray [10];
Zgornja izjava ustvari matriko z imenom 'sarray', ki vsebuje deset spremenljivk, in vsaka spremenljivka je organizirana, kot je definirano v 'sname'.
- Strukturnemu članu lahko posredujete funkcijo in funkciji lahko prenesete celotno strukturo.
- Podobno je lahko tudi celoštevilski kazalec, kazalec niza, strukturni kazalec, ki ga lahko deklariramo tudi tako, da na sprednji strani imena strukturnih spremenljivk postavimo »*«.
// vzorec struct sname * S1;
Opomba:
Elementi „strukture“ so shranjeni v sosednji pomnilniški lokaciji.
Opredelitev razreda
Razred v OOP določa nov tip, ki vsebuje podatkovne člane in funkcijo člana, ki se uporabljajo za dostop do podatkovnih članov razreda. Primeri razredov se imenujejo »predmeti«, od katerih ima vsaka enako organizacijo kot razred. Razred je logična abstrakcija, medtem ko ima objekt fizični obstoj. Razred je sintaktično podoben strukturi. Razred se lahko razglasi kot sledi.
razred class_name {zasebni podatki in funkcije članov. type_specifier type_member; vnesite mem_funct (seznam parametrov) {. . }} seznam predmetov;
Tukaj je razred ključna beseda, ki razglasi prevajalniku, da je bil razred deklariran. Glavna značilnost OOP je skrivanje podatkov, ki se doseže z zagotavljanjem treh specifikatorjev dostopa, ki so „javni“, „zasebni“, „zaščiteni“. Če v razredu ne podate nobenega specifikatorja dostopa, medtem ko prijavljate člane podatkov ali funkcije članov, se privzeto vsi štejejo za zasebne. Specifikator javnega dostopa omogoča, funkcije ali podatke, do katerih dostopajo drugi deli vašega programa. Do zasebnih članov razreda lahko dostopa samo član tega razreda. Med dedovanjem se uporablja zaščitena specifikacija dostopa. Ko deklarirate dostop, ga ni mogoče spremeniti v celotnem programu.
Objekti niso nič drugega kot primer razredov. Članom razreda dostopa objekt istega razreda z operaterjem pika (.).
//object.mem_funct (argumenti);
- Objekt se lahko posreduje tudi kot argument funkciji.
- Prav tako lahko ustvarite kazalec na objekt.
Ključne razlike med strukturo in razredom
- Glavna razlika med strukturami in razredi je, da so vsi člani strukture privzeto javni, medtem ko so privzeto vsi člani razreda zasebni.
Podobnosti:
- V C ++ sta struktura in razred sintaktično enakovredna.
- Tako struktura kot razred lahko nekatere člane razglasita za zasebne.
- Ime strukture ali razreda se lahko uporablja kot samostojen tip.
- Struktura in razred podpirata mehanizem dedovanja.
Sklep:
Struktura v C je imela nekatere omejitve, saj struktura ne dovoljuje skrivanja podatkov, podatkovnega tipa „struct“ ni bilo mogoče obravnavati kot vgrajene vrste, strukture ne podpirajo dedovanja. Struktura v C ++ je premagala te omejitve. V C ++ so razredi razširjena različica strukture. Programer z lahkoto uporabi razred za hranjenje podatkov in funkcijo tako za strukturo kot za shranjevanje podatkov.