Különbség a szerkezet és az osztály között

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 4 Lehet 2024
Anonim
Különbség a szerkezet és az osztály között - Technológia
Különbség a szerkezet és az osztály között - Technológia

Tartalom


A struktúra és az osztály egyaránt lehetővé teszi egy testreszabott adattípus létrehozását, amelyet tovább lehet használni példányok létrehozásához. A C ++ kibővíti a struktúra szerepét osztály létrehozásában. Mind a szerkezet, mind az osztály minden tekintetben hasonlóak, kivéve egy különbséget, amely szerint a szerkezet alapértelmezés szerint minden tagja „nyilvános”, és az osztály alapértelmezés szerint minden tagja „privát”. Vizsgáljuk meg a szerkezet és az osztály közötti különbséget összehasonlító diagram segítségével.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Hasonlóságok
  5. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaSzerkezetOsztály
Alapvető Ha a hozzáférés-meghatározót nem deklarálják, alapértelmezés szerint minden tag nyilvános.Ha a hozzáférés-meghatározót nem deklarálják, akkor alapértelmezés szerint minden tag privát.
Nyilatkozat struct structure_name {
type struct_element 1;
type struct_element 2;
típusú struct_element 3;
.
.
.
};
osztály osztály_neve {
adat tag;
tag funkció;
};
Példa A struktúra példányát szerkezeti változónak nevezzük.Az osztály példányát objektumnak nevezzük.


A szerkezet meghatározása

A struktúra különféle adattípusok változóinak gyűjteménye, amelyek mindegyikére egy név hivatkozik. A struktúra-nyilatkozat sablont képez, amelyet a struktúra példányának létrehozására használnak. A szerkezet a következő.

struct sname {struct_element1 típus; struct_element2 típus; struct_element3 típus; . . . } változó1, változó2,. . .;

Az 'struct' kulcsszó meghatározza a fordítónak, hogy egy struktúrát deklarálnak. A 'név' a struktúrának adott nevet jelöli. A szerkezetnyilatkozatot mindig pontosvessző végzi, mivel azt állításnak tekintik. Bejelenti a struktúra példányait annak megszüntetése előtt a fenti kódban (változó1, változó2), vagy pedig a main () változóban deklarálhatja a struktúra példányát azáltal, hogy megírja a példány nevét, amelyet a struktúra neve előz meg.


// példa. main () {név S1, S2; }

Itt az S1 és S2 a struktúra példányai. A struktúra példányait „szerkezeti változónak” nevezzük. A szerkezet testében deklarált elem a szerkezeti változók segítségével a dot (.) Operátor segítségével érhető el.

// S1. példa struct_element1;

  • A struktúra tömb is létrehozható, ehhez először deklarálnia kell egy struktúrát, majd deklarálnia kell egy ilyen típusú tömböt.

// minta struct sname sarray;

A fenti nyilatkozat létrehoz egy tíz változót tartalmazó „sarray” elnevezésű tömböt, és minden változó a „név” meghatározása szerint van rendezve.

  • Átadhat egy struktúratagot egy függvénynek, és egy teljes struktúrát átadhat egy funkciónak.
  • Mint például az egész mutató, a tömb mutató, a struktúra mutató is deklarálható azáltal, hogy a * * -ot a szerkezeti változók neve elé helyezi.

// minta struct név * S1;

Jegyzet:

A 'szerkezet' elemeket szomszédos memóriahelyen tárolják.

Az osztály meghatározása

Az OOP osztály egy új típust határoz meg, amely adattagokat és tagfüggvényeket tartalmaz, amelyek az osztály adatainak eléréséhez használhatók. Az osztályok példányait „objektumoknak” nevezzük, amelyek mindegyike ugyanazzal a szervezettel rendelkezik, mint az osztály. Az osztály logikai absztrakció, míg az objektum fizikailag létezik. Az osztály szintaktikailag hasonló a szerkezethez. Az osztály az alábbiak szerint nyilvánítható.

class class_name {magán adatok tagjai és tag funkciói. access_specifier type data_member; írja be a mem_funct (paraméterlista) {. . }} objektumlista;

Itt az osztály egy kulcsszó, amely kijelenti a fordítónak, hogy osztályt deklarált. Az OOP fő jellemzője az adatok elrejtése, amely három hozzáférési specifikátor biztosításával érhető el, amelyek „nyilvános”, „privát”, „védett”. Ha az adattagok vagy a tagfunkciók deklarálásakor az osztályban semmilyen hozzáférési meghatározót nem határoz meg, alapértelmezés szerint mindegyik privátnak tekinthető. A nyilvános hozzáférés-specifikátor lehetővé teszi, hogy a funkciókhoz vagy az adatokhoz a program többi része hozzáférhessen. Az osztály magántagjaihoz csak az osztály tagjai férhetnek hozzá. A védett hozzáférés-meghatározót az öröklés során alkalmazzák. Miután kijelentette a hozzáférés-meghatározót, az nem változtatható meg a program során.

Az objektumok nem más, mint az osztályok példányai. Az osztály tagjait ugyanazon osztály objektuma érheti el dot (.) Operátor használatával.

//object.mem_funct (argumentumok);

  • Az objektum argumentumként átadható egy függvénynek.
  • Az objektum mutatója szintén létrehozható.
  1. A struktúrák és az osztályok közötti fő különbség az, hogy alapértelmezés szerint a struktúra összes tagja nyilvános, míg alapértelmezés szerint az osztály összes tagja magán.

Hasonlóságok:

  • A C ++ esetében mind a szerkezet, mind az osztály szintaktikailag ekvivalensek.
  • A struktúra és az osztály egyaránt tagjait magánjellegűnek nyilváníthatja.
  • A struktúra vagy osztály neve használható önálló típusként.
  • Mind a szerkezet, mind az osztály támogatja az öröklés mechanizmusát.

Következtetés:

A C struktúrában volt néhány korlátozás, mivel a struktúra nem engedi az adatok elrejtését, az 'struct' adattípust nem lehet úgy kezelni, mint a beépített típusokat, a struktúrák nem támogatják az öröklést. A C ++ szerkezete túllépte ezeket a korlátozásokat. A C ++ osztályban az osztályok a szerkezet kibővített változata. A programozó megkönnyíti az osztály használatát adatok tárolására, és mindkettő működésére, és csak az adatok tárolására szolgáló struktúrára.