Diferența dintre structură și clasă

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 4 Mai 2024
Anonim
ADMITERE MEDICINA: CELULA - Structura - PARTEA 1/3
Video: ADMITERE MEDICINA: CELULA - Structura - PARTEA 1/3

Conţinut


Atât o structură cât și o clasă oferă o modalitate de a crea un tip de date personalizat care poate fi utilizat în continuare pentru a crea instanțe. C ++ extinde rolul structurii pentru a crea o clasă. Atât structura, cât și clasa, sunt similare din toate punctele de vedere, cu excepția unei diferențe, că, în mod implicit, toți membrii săi sunt „publici”, iar clasa implicit au toți membrii „privați”. Să studiem diferența dintre structură și clasă folosind graficul de comparație.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Asemănările
  5. Concluzie

Diagramă de comparație

Baza pentru comparațieStructuraClasă
De bază Dacă specificatorul de acces nu este declarat, în mod implicit, toți membrii sunt publici.Dacă specificatorul de acces nu este declarat, în mod implicit, toți membrii sunt privați.
Declaraţie struct structure_name {
tip struct_element 1;
tip struct_element 2;
tip struct_element 3;
.
.
.
};
class class_name {
membru de date;
funcția de membru;
};
Instanță Instanța structurii se numește variabilă de structură.Instanța unei clase se numește obiect.


Definiția Structure

O structură este o colecție de variabile de tipuri de date diferite, toate la care se face referire cu un singur nume. O declarație de structură formează un șablon care este utilizat pentru a crea o instanță a structurii. Structura este declarată după cum urmează.

struct sname {tip struct_element1; tip struct_element2; tip struct_element3; . . . } variabilă1, variabilă2,. . .;

Cuvântul cheie „struct” definește pentru compilator că o structură este declarată. „Sname” reprezintă numele dat structurii. Declarația de structură este întotdeauna încheiată cu un punct și virgulă, deoarece este considerată ca o afirmație. Puteți declara instanțele structurii înainte de terminarea acesteia, așa cum se face în codul de mai sus (variabila1, variabila2) sau puteți declara instanța de structură în main (), scriind numele instanței precedent cu numele structurii.

// exemplu. principal () {sname S1, S2; }

Aici S1 și S2 sunt instanțele structurii. Instanțele structurii se numesc „variabilă de structură”. Elementul declarat în interiorul corpului de structură poate fi accesat prin variabilele de structură prin utilizarea operatorului punct (.).


// exemplu S1. struct_element1;

  • Matricea de structură poate fi de asemenea creată, pentru aceasta, mai întâi trebuie să declarați o structură și apoi, să declarați un tablou de acel tip.

// proba struct sname sarray;

Declarația de mai sus creează un tablou cu numele „sarray” care conține zece variabile și fiecare variabilă este organizată așa cum este definită în „sname”.

  • Puteți trece un membru al structurii la o funcție și puteți trece o structură întreagă la o funcție.
  • De exemplu, pointerul întreg, pointerul de matrice, un pointer de structură poate fi, de asemenea, declarat prin plasarea „*” în partea din față a numelui variabilelor de structură.

// exemplu struct sname * S1;

Notă:

Elementele „structurii” sunt stocate într-o locație de memorie contiguă.

Definiția Class

Clasa în OOP definește un tip nou care conține membri de date și funcția de membru, care sunt utilizate pentru a accesa datele membrilor clasei. Instanțele claselor sunt numite „obiecte”, fiecare având aceeași organizație ca și o clasă. Clasa este o abstractizare logică, în timp ce un obiect are o existență fizică. Clasa este similară sintactic cu structura. Clasa poate fi declarată după cum urmează.

class class_name {membri de date private și funcții ale membrilor. access_specifier data_member; tastați mem_funct (lista parametrilor) {. . }} lista obiectelor;

Aici, clasa este un cuvânt cheie care declară compilatorului că o clasă a fost declarată. Principala caracteristică a OOP este ascunderea datelor, care se realizează prin furnizarea a trei specificatori de acces, care sunt „publice”, „private”, „protejate”. Dacă nu specificați niciun specificator de acces din clasă în timp ce declarați membri sau funcții membre, în mod implicit, toate sunt considerate private. Specificatorul de acces public permite accesarea funcțiilor sau datelor de către alte părți ale programului. Membrii privați ai clasei pot fi accesați doar de către un membru al clasei respective. Specificatorul de acces protejat este aplicat în timpul moștenirii. După ce declarați specificatorul de acces, acesta nu poate fi modificat pe întregul program.

Obiectele nu sunt altceva decât instanța de curs. Membrii clasei sunt accesați de obiectul aceleiași clase folosind un operator punct (.).

//object.mem_funct (argumente);

  • Obiectul poate fi transmis și ca argument la o funcție.
  • Pointerul către un obiect poate fi, de asemenea, creat.
  1. Principala diferență între structuri și clase este că, implicit, toți membrii structurii sunt publice, în timp ce, în mod implicit, toți membrii clasei sunt privați.

asemănări:

  • În C ++ atât structura cât și clasa sunt echivalente sintactic.
  • Atât structura, cât și clasa pot declara unii dintre membrii lor privați.
  • Numele unei structuri sau clase poate fi folosit ca un tip de sine stătător.
  • Atât structura cât și o clasă susțin mecanismul moștenirii.

Concluzie:

Structura din C avea o parte din limitare, deoarece structura nu permite ascunderea datelor, tipul de date „struct” nu poate fi tratat ca tipuri încorporate, structurile nu suportă moștenirea. Structura în C ++ a depășit aceste limitări. În C ++, clasele sunt versiunea extinsă a structurii. Programatorul consideră că este ușor să folosească clasa pentru a reține date și să funcționeze ambele și să structureze doar pentru a reține date.