Razlika med strukturo in razredom

Avtor: Laura McKinney
Datum Ustvarjanja: 1 April 2021
Datum Posodobitve: 4 Maj 2024
Anonim
# Wax cast from own wax: what is the difference?
Video.: # Wax cast from own wax: what is the difference?

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.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Podobnosti
  5. Zaključek

Primerjalna tabela

Osnove za primerjavoStrukturaRazred
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 »*«.

// vzorec strukture ime * S1;

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.
  1. 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.