Preporučeno, 2024

Izbor Urednika

Razlika između strukture i klase

I struktura i klasa pružaju način za stvaranje prilagođenog tipa podataka koji se može koristiti za stvaranje primjeraka. C ++ proširuje ulogu strukture za stvaranje klase. I struktura i klasa, slične su u svakom pogledu, osim jedne razlike da, struktura po defaultu ima sve svoje članove kao “javne”, a klasa po defaultu ima sve svoje članove “privatne”. Proučimo razliku između strukture i klase pomoću usporedne tablice.

Tablica usporedbe

Osnova za usporedbuStrukturaklasa
Osnovni, temeljniAko specifikator pristupa nije deklariran, po defaultu svi članovi su 'javni'.Ako specifikator pristupa nije deklariran, po defaultu svi članovi su 'privatni'.
Deklaracijastruct structure_name {
tip struct_element 1;
tip struct_element 2;
tip struct_element 3;
,
,
,
};
class class_name {
član podataka;
funkcija člana;
};
PrimjerInstanca 'strukture' naziva se 'strukturna varijabla'.Instanca 'klase' naziva se 'objekt'.

Definicija strukture

Struktura je skup varijabli različitih tipova podataka, na koje upućuje jedno ime. Deklaracija strukture oblikuje predložak koji se koristi za kreiranje instance strukture. Struktura je deklarirana kao što slijedi.

 struct sname {tip struct_element1; upišite struct_element2; upišite struct_element3;, , , } varijable1, varijable2, ., . 

Ključna riječ 'struct' definira kompajleru da je struktura deklarirana. 'Zmija' predstavlja naziv strukture. Deklaracija strukture uvijek se završava točkom-zarezom, jer se smatra izrazom. Možete deklarirati instance strukture prije njezina završetka kao što je učinjeno u gornjem kodu (variable1, variable2) ili možete deklarirati instancu strukture u main (), pišući ime instance ispred imena strukture.

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

Ovdje su S1 i S2 primjeri strukture. Primjeri strukture nazivaju se "strukturna varijabla". Elementu koji je deklariran unutar tijela strukture može se pristupiti kroz strukturalne varijable pomoću operatora točka (.).

 // Primjer S1. struct_element1; 
  • Niz struktura se također može kreirati, za to prvo morate deklarirati strukturu, a zatim deklarirati niz tog tipa.
 // uzorak struct sname sarray [10]; 

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

  • Možete prenijeti člana strukture na funkciju, a možete prenijeti cijelu strukturu na funkciju.
  • Kao i cijeli broj pointera, pokazivač niza, pokazivač strukture također se može deklarirati stavljanjem '*' na prednje ime strukture varijabli.
 // uzorak struct sname * S1; 

Bilješka:

Elementi 'strukture' pohranjeni su u susjedno memorijsko mjesto.

Definicija klase

Klasa u OOP-u definira novi tip koji sadrži članove podataka i funkciju člana, koji se koriste za pristup članovima podataka klase. Primjeri klasa nazivaju se "objekti" od kojih svaki ima istu organizaciju kao i klasa. Klasa je logička apstrakcija, dok objekt ima fizičko postojanje. Klasa je sintaktički slična strukturi. Klasa se može proglasiti sljedećom.

 klasa class_name {osobni podaci članovi i funkcije člana. access_specifier tip data_member; upišite mem_funct (popis parametara) {., }} popis objekata; 

Ovdje je klasa ključna riječ koja izjavljuje kompajleru da je klasa deklarirana. Glavna značajka OOP-a je skrivanje podataka koje se postiže davanjem triju specifičara pristupa koji su „javni“, „privatni“, „zaštićeni“. Ako u klasi ne navedete nijednog specifičara pristupa dok prijavljujete članove podataka ili funkcije člana, zadano se svi smatraju privatnim. Specifikator javnog pristupa omogućuje, funkcije ili podatke kojima pristupaju drugi dijelovi vašeg programa. Privatnim članovima klase može pristupiti samo član te klase. Tijekom nasljeđivanja primjenjuje se zaštićeni pristupnik. Nakon što deklarirate pristupnik, ne može se promijeniti tijekom cijelog programa.

Objekti nisu ništa drugo nego instanca klasa. Članovima klase pristupa se objektu iste klase pomoću operatora točke (.).

 //object.mem_funct (argumenti); 
  • Objekt se također može proslijediti kao argument funkciji.
  • Pokazivač na objekt također može biti kreiran.

Ključne razlike između strukture i klase

  1. Glavna razlika između struktura i klasa je u tome što su svi članovi strukture po defaultu javni, dok su po defaultu svi članovi klase privatni.

sličnosti:

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

Zaključak:

Struktura C-a imala je neka ograničenja jer struktura ne dopušta skrivanje podataka, 'struct' tip podataka se ne može tretirati kao ugrađeni tipovi, strukture ne podržavaju nasljeđivanje. Struktura u C ++ prevladala je ta ograničenja. U C ++, klasa je proširena verzija strukture. Programeru je lako koristiti klasu za držanje podataka i funkcioniranje i strukturu samo za držanje podataka.

Top