Razlika između strukture i klase u C++

Ključne razlike između strukture i klase u C++

  • Struktura je korisnički definirana vrsta podataka koja grupira logički povezane podatkovne stavke, dok je klasa nacrt koji se koristi za stvaranje određenih vrsta objekata.
  • In C++, i strukture i klase podržavaju korisnički definirane konstruktore i destruktore.
  • Primarna razlika je u tome što su članovi strukture prema zadanim postavkama javni, dok su članovi klase prema zadanim postavkama privatni.
  • Oba mogu podržavati nasljeđivanje, polimorfizam i enkapsulaciju.
  • Strukture se često koriste za jednostavno grupiranje podataka; klase su poželjne za složena ponašanja i dizajne.
  • Raspodjela memorije (skup ili gomila) ovisi o tome kako su objekti deklarirani, a ne o tome jesu li klase ili strukture.
  • Varijable članice mogu se inicijalizirati izravno unutar struktura i klasa u modernom C++.
Razlika između strukture i klase
Razlika između strukture i klase

U čemu je Struktura C++?

Struktura je korisnički definirana vrsta podataka koja kombinira logički povezane podatkovne stavke različitih tipova podataka kao što su float, char, int itd. zajedno.

Svi elementi strukture pohranjeni su na neprekidnim memorijskim lokacijama. Varijabla tipa strukture pomaže vam da pohranite više od jedne podatkovne stavke različitih tipova podataka pod jednim imenom.

Sintaksa strukture u C++

Evo sintakse Strukture:

struct struct_name
{
// struct data members
}

U gornjoj sintaksi koristi se ključna riječ struct. struct_name je naziv strukture. Članovi strukture dodaju se unutar vitičastih zagrada. Ovi članovi vjerojatno pripadaju različitim tipovima podataka.

Što je Class in C++?

Klasa je nacrt ili skup uputa za izgradnju određene vrste objekta. To je osnovni koncept objektno orijentiranog programiranja koji se vrti oko entiteta iz stvarnog života. Razred u a programski jezik određuje kako će se objekt ponašati i što će objekt sadržavati.

Klasa je također korisnički definiran tip podataka koji može imati različite vrste tipova podataka i funkcija članova unutar svog tijela.

Sintaksa klase u C++

Evo sintakse klase:

class class-name
{
// data
// functions
};

U gornjoj sintaksi, naziv klase je naziv koji je dodijeljen klasi. Podatak je član klase, obično deklariran kao varijable. Funkcije ovdje su funkcije klase.

Struktura naspram klase C++

Ovdje je glavna razlika između strukture i klase C++:

Struktura Klasa
Struktura je korisnički definirana vrsta podataka koja grupira povezane varijable. Klasa je korisnički definirana vrsta podataka koja djeluje kao nacrt za objekte.
Deklarirano pomoću struct ključne riječi. Deklarirano pomoću class ključne riječi.
Zadani specifikator pristupa je javni. Zadani specifikator pristupa je privatni.
Podržava funkcije članice, konstruktore, destruktore i nasljeđivanje baš kao i klase. Potpuno podržava OOP značajke kao što su konstruktori, destruktori, nasljeđivanje, polimorfizam.
Članovi mogu biti privatni ili zaštićeni ako su izričito deklarirani. Ovdje isto—kontrola pristupa je u potpunosti podržana.
In C++, strukture i klase gotovo su identične, osim zadanog specifikatora pristupa. Iste mogućnosti; samo se zadani specifikator pristupa razlikuje.
Često se koristi za obične strukture podataka (POD: Plain Old Data). Često se koristi za potpuni OOP dizajn.
Instance se obično neformalno nazivaju "varijablama strukture". Instance se nazivaju objekti.

Koju odabrati?

Ako imate veliki memorijski otisak ili volite koristiti koncept poput nasljeđivanja, tada možete odabrati klasu. S druge strane, struktura se može koristiti kada imate malo memorijsko polje ili otisak koji je potreban za inicijalizaciju zadanih vrijednosti.