Hogy lehetne megfogalmazni a példány és a változó közti különbséget?
A változót általában egyszerű típusra használjuk. Egy szám, egy szöveg, egy tömb, egy mutató.
A példány az osztályokból hozható létre, ami valami bonyolultabb szerkezetet rejt magában.
Nagyon egyszerű. Változó az, aminek neve van. Példány meg egy objektum a memóriában. Például ez:
int array[10];
Egy változó és tíz (vagy tizenegy, ha a tömböt mint objektumot külön számolod, C++-ban szemantikai okokból nem szokás (mert a tömb tényleg csak egymás mellé rakott objektumok), C#-ban de) példány. Ha így csinálod:
typedef int array[10];
new array;
Akkor létrehoztál egy vagy tíz vagy tizenegy példányt, anélkül hogy változót kreáltál volna.
A példány az objektum osztály szerkezet alapján létrehozott megvalósulás,ami változókat (tulajdonságok) és eljárásokat/funkcoókat (metódusokat)
A változó pedig csak adatot tartalmazhat.
Bár lehet a tulajdonság helyett a tulajdonságérték a pontosabb fogalom,ugyanis pont az a lényeg,hogy már rendelkezik értékkel.
Ha osztály a szem,akkor tulajdonság a szemszín, egy példány esetén ez pedig konkrétan kék vagy zöld vagy .. stb..
A változó csak egy darab hivatkozást tartalmaz egy memóriaterületre.
A példány pedig akár többet is pl a memberekre,metódusokra,egyéb példányokra stb...
Javítsatok ki ha nem így van.
Példány: Ez egy olyan fajta változó ami 1 osztály vagy struktúra membereire,metódusaira,vpt táblájára,konstruktorára,destruktorára,operátoraira mind tartalmaz hivatkozásokat.A példány egy olyan változó ami változókat tárol,hogy elérhesse rajtuk keresztül a fentebb felsoroltakat.Tehát a példány az egy mutatókból álló kollekció.
Változó: Ilyen tipusú változókat tartalmaz a példány,ezek a változók egyetlen mennyiséget tárolnak ez a mennyiség pedig hivatkozás a memóriarekeszekre.Ezek csak sima mutatók.
C# ben lehetetlen kreálni sima változótde c++ ban nem.
Iostream azt írtad,hogy a változó az aminek neve van.
Értem alogikádat,hogy hogyan próbáltad megértetni vele a két dolog közti külömbséget de ez így nem jó mert neve nem csak változónak van hanem mindennek.
Egy változó az valójában egy mutató aminek az értéke egy memóriarekeszre mutat ahol az adat van amit el akar érni.
Ez a változó.
Aztán vannak a példányváltozók ez c# ben lehet egy tömb is de c++ ban ez csak sima változófajtalesz.
Pont úgy ahogy a te példádban volt.
A példányváltozó pedig nem csak egy dologra hivatkozik hanem többre.Ezt már írtam fentebb vpt re meg memberekre , listára ami egy tömb esetén egy listára is lesz referencia.Mert az array listába tárolja az elemeit amik int esetében sima változók nem példány változók.
Class,Struct,Enum,delegate,string ezek c# ben ha létrehozunk belőlük akkor ezek példányok(példányváltozók ami egy vagy több dologra hivatkozik) lesznek amik több dologra hivatkoznak de int esetén vagy short vagy char esetén csak változóról beszélünk mert ezek csak egy dologra hivatkoznak(csak c++).Egyébként c# nyelvben ezek is példányváltozók,objektumváltozók ahogy tetszik.
Előző vagyok a kérdésre a tökéletes válasz a hatosé.
Ezt is én írtam csak nem fejtettem ki úgy mint az előző kommentembe.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!