Razlika između strukture i klase

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 5 Svibanj 2024
Anonim
CLASSES vs STRUCTS in C++
Video: CLASSES vs STRUCTS in C++

Sadržaj


I struktura i klasa pružaju način stvaranja prilagođenog tipa podataka koji se može dalje koristiti za stvaranje instanci. C ++ proširuje ulogu strukture kako bi stvorio klasu. I struktura i klasa slični su u svakom pogledu, osim jedne razlike koja, prema zadanom ustroju, svoga člana ima kao "javnu", a klasa prema zadanom ima svoga člana "privatnim". Ispitajmo razliku između strukture i klase pomoću usporednog grafikona.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. sličnosti
  5. Zaključak

Usporedni grafikon

Osnove za usporedbuStrukturaklasa
Osnovni, temeljni Ako specifikator pristupa nije deklarisan, svi su članovi prema zadanim postavkama javni.Ako specifikator pristupa nije deklarisan, svi su članovi prema zadanom privatni.
Deklaracija struct structure_name {
upišite struct_element 1;
upišite struct_element 2;
upišite struct_element 3;
.
.
.
};
class class_name {
član podataka;
funkcija člana;
};
Primjer Instanca strukture naziva se strukturna varijabla.Instanca klase naziva se objekt.


Definicija strukture

Struktura je zbirka varijabli različitih tipova podataka, na koje sve upućuje jedno ime. Deklaracija strukture tvori predložak koji se koristi za stvaranje instancije strukture. Struktura je deklarirana na sljedeći način.

naziv struct {vrsta struct_element1; upišite struct_element2; upišite struct_element3; , , , } varijabla1, varijabla2,. , .

Ključna riječ "struct" definira prevoditelju da se struktura deklarira. 'Ime' predstavlja ime dano strukturi. Deklaracija strukture uvijek se završava zarezom, jer se smatra izjavom. Možete deklarirati instancije strukture prije njezinog ukidanja kao što je učinjeno u gornjem kodu (varijabla1, varijabla2) ili možete deklarirati instancu strukture u main (), tako što ćete napisati naziv instancije koji prethodi imenu strukture.

// primjer. main () {ime S1, S2; }

Ovdje su S1 i S2 primjerci strukture. Primjeri strukture nazivaju se "varijabla strukture". Elementu deklarisanom u tijelu strukture može se pristupiti kroz varijable strukture korištenjem dot (.) Operatera.


// primjer S1. struct_element1;

  • Niz strukture također se može stvoriti, za to prvo morate deklarirati strukturu, a zatim proglasiti niz te vrste.

// uzorak strukture sname sray;

Gornji izraz stvara niz s imenom 'sarray' koji sadrži deset varijabli, a svaka je varijabla organizirana kako je definirano u 'sname'.

  • Možete proslijediti člana strukture funkciji, a funkciji možete prenijeti čitavu strukturu.
  • Kao, cjelobrojni pokazivač, pokazivač array, pokazivač strukture također se može deklarirati stavljanjem '*' na naslov naziva varijabli strukture.

// naziv uzorka strukture * S1;

Bilješka:

Elementi 'strukture' pohranjuju se u neprekidnu memorijsku lokaciju.

Definicija klase

Klasa u OOP-u definira novu vrstu koja sadrži članove podataka i funkciju članova koji se koriste za pristup članovima podataka klase. Primjeri klasa nazivaju se "predmeti" od kojih svaki ima istu organizaciju kao klasa. Klasa je logična apstrakcija, dok objekt ima fizičko postojanje. Klasa je sintaktički slična strukturi. Razred se može proglasiti na sljedeći način.

class class_name {članovi privatnih podataka i funkcije članova. type_specifier type data_member; upišite mem_funct (popis parametara) {. , }} popis objekata;

Ovdje je klasa ključna riječ koja prevoditelju izjavljuje da je klasa deklarirana. Glavna značajka OOP-a je skrivanje podataka koje se postiže pružanjem tri specifičara pristupa koji su „javni“, „privatni“, „zaštićeni“. Ako prilikom klasiranja podataka ili funkcija člana ne navedete nijedan pristupni specifikator u klasi, svi se zadano smatraju privatnim. Specifikatoru javnog pristupa omogućuje se, funkcijama ili podacima kojima mogu pristupiti drugi dijelovi vašeg programa. Privatnim članovima klase može pristupiti samo član te klase. Zaštićeni pristupni specifikator primjenjuje se tijekom nasljeđivanja. Jednom kada deklarirate specifikator pristupa, on se ne može mijenjati u cijelom programu.

Objekti nisu ništa drugo do instanca klase. Članovima klase pristupa objekt iste klase pomoću točkastog (.) Operatora.

//object.mem_funct (argumenti);

  • Objekt se također može proslijediti kao argument funkciji.
  • Također se može stvoriti pokazivač na objekt.
  1. Glavna razlika između struktura i klasa je u tome što su, prema zadanim postavkama, svi članovi strukture javni, dok su, prema zadanom, svi članovi klase privatni.

sličnosti:

  • U C ++ i struktura i klasa su sintaktički jednaki.
  • I struktura i klasa mogu neke članove proglasiti privatnim.
  • Naziv strukture ili klase može se koristiti kao samostalni tip.
  • I struktura i klasa podržavaju mehanizam nasljeđivanja.

Zaključak:

Struktura u C-u imala je određeno ograničenje jer struktura ne dopušta skrivanje podataka, 'data' vrsta podataka ne može se tretirati kao ugrađeni tipovi, strukture ne podržavaju nasljeđivanje. Struktura u C ++ prevladala je ta ograničenja. U C ++, klase su proširena inačica strukture. Programeru je lako koristiti klasu za čuvanje podataka i funkcioniranje oboje i samo za držanje podataka.