Kezdőoldal » Számítástechnika » Programozás » Mi a különbség a Class és a...

Mi a különbség a Class és a Struct között? (C#-ban és C++-ban)

Figyelt kérdés
Default láthatóság a Struct-nál public és ennyi a különbség? Mármint akkor szabad kezet kapok, hogy struct vagy class, mert lényegében ugyanazok? Viszont ha csak ennyi a különbség akkor miért éri meg az osztályokat használni? Csak mert ennyi erővel a struct után begépelem hogy private, és ugyanaz a hatás.
2019. ápr. 2. 08:52
 1/10 anonim ***** válasza:
0%

Classokon c++-ban megadhatsz saját operátorokat és azt hiszem csak class-ban léteznek virtual függvények.

De mindkettő hasonló.

[link]

2019. ápr. 2. 09:02
Hasznos számodra ez a válasz?
 2/10 anonim válasza:
70%
C#-ban elég különbözőek egymástól. Struct érték típus a class referencia típus. Structnak nem definiálhatsz default konstruktórt és nem származtathatsz belőle.
2019. ápr. 2. 09:34
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
65%

A C++-ban:

A struct és a class között csak az az egy különbség van, hogy a class-ban a default a private, míg structban a default public.


Ezt leszámítva 100%-ban egyenértékű a struct és a class, így elméletben ha random átírod egyiket a másikra egy forráskódban, akkor előfordulhat, hogy semmi változás nem lesz.


A gyakorlatban meg structot adattárolásra használják, ha van egy kisebb objekted, ami csak néhány összetartozó adat, akkor azt struct ként definiálják (külön file nélkül), míg classba az összetettebb objectek jönnek.

2019. ápr. 2. 09:52
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
75%
Csak kiegészítés: A class tuképpen a struct-ból fejlődött ki. A C-ben lévő struct pl. szinte teljesen azonos a C++-os class-szal, pl. C-ben is lehetett függvényeket, operátorokat hozzárendelni, stb. Az OO elvárások miatt megfejlesztették a kezelését, osztály lett belőle, amit főleg a fordító intéz, de a háttérben (pl. a lefordított kódban) nincs nagy különbség.
2019. ápr. 2. 12:58
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
75%
..Illetve legalább egy dolog a natív kódban is különbséget jelen: a virtuális metódusok kezelése.
2019. ápr. 2. 13:01
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
65%
#4-es inkább ne szól hozzá olyanhoz, amihez nem értesz, csak félre vezeted az embereket...
2019. ápr. 2. 13:06
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
75%
Akkor cáfold meg valamelyik részét, okostojás, hadd tanuljunk is valamit, mert eddig valamit mindenki mellélőtt.
2019. ápr. 2. 14:44
Hasznos számodra ez a válasz?
 8/10 Horalys válasza:
70%

Hogy tisztázzuk, a class minden esetben referencia szerint kezelődik a c#-ban ( és default private a láthatósága). Ezzel szemben a struktúra egy "lebutított osztály", melynek példányai érték szerint adódnak át ( és by default public ). Természetesen mindkét szerkezet tartalmazhat adattagokat melyeknek az alapértelmezettől eltérő láthatóságot is adhatsz.


A get-set blokk annyiban könnyíti meg az életedet ( főleg a java programozókkal szemben), hogy a lekérdező és az értékadó műveleteket közvetlenül az adattaghoz rendelheted. Természetesen ezeknek is lehet saját láthatóságuk, sőt a megvalósításuk se kötelező ( public adattag esetén a fordító implicit generál egy alapértelmezett get-set blokkot, valahogy így: var v{get;set;}). Az persze megint más kérdés, hogy mit szeretnél te ezzel, mert az nem befolyásolja azt, hogy egy generikus konténert te milyen típussal típusozol fel. Alapértelmezetten az Object valamely leszármazottja lehet egy generikus tároló típusa, de ezt ha szükséges le tudod szűkíteni. Erre van a where ksz. Ha érdekel, olvass utána.

2019. ápr. 2. 17:03
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
0%

7

Miután az egész úgy ahogy van fazság, így nincs mit megcáfolni rajta. _ALAP_ ismeretek hiánynak itt, ezen nincs mit megcáfolni, aki annyira 0-a, hogy ilyen szintű hülyeséget biggyeszt ide, azzal nem lehet szakmai dolgokról beszélni.

Ajánlom legalább valami kezdő szintű tananyag áttanulmányozását, azt ha azzal megleszel, már te is érteni fogod miért írtam azt amit.


Ez kb. olyan, mintha nem ismernéd a számokat, és kérnéd, hogy magyarázzam el neked a másodfokú egyenletet. Nincs értelme...

2019. ápr. 3. 09:04
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
30%
#9: Dragonka... Hányszor kell ezt még eljátszanunk?
2019. ápr. 9. 10:31
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!