Kezdőoldal » Számítástechnika » Programozás » C++-ban pontosan mit nevetünk...

C++-ban pontosan mit nevetünk egy változó deklarálásának?

Figyelt kérdés

Amikor létrehozzuk? Pl. int b;

Vagy amikor azt jelöljük, hogy egy külső fájlban lesz létrehozva? extern int b;

(Én mindezidáig úgy tudtam, hogy a fentebbi lehetőség, ámde egy fórumon sikeresen összezavartak :) )



2016. dec. 17. 13:03
 1/4 anonim ***** válasza:
lefoglalunk neki egy értéket, ami az adott értéktől függetlenül akár lehet bit, boolean, int, string stb, ezeket általában programon belül tároljuk, de ha máshonnan is el akarod érni, akkor könnyebb kiíratni és újra beolvasni mint létrehozni külső fáljba és csak egy metódussal több.
2016. dec. 17. 14:07
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

A deklarálás az amikor jelezzük a fordítónak hogy létezik egy változó/függvény. A definiálás az, amikor a változó/függvény explicit vagy implicit de kap valamilyen értéket (lehet ez memóriaszemét is), azaz fizikailag is elkezd létezni valahol.


Az int b; deklarál és definiál is, azaz a "b" innentől létezik a fordító számára is, és tartozik hozzá egy memóriacím vagy regiszter ahova beírhatunk valamilyen értéket..


Az extern int b; csak deklarál egy "b"-t, azaz megmondja a fordítónak hogy van egy "b" nevű int típusú változónk, ami vagy létezik valahol vagy nem, az majd linkeléskor fog kiderülni. Nem definiáljuk, számítunk arra hogy a definiálást majd valaki más elvégzi valamelyik másik forrásban.

2016. dec. 17. 14:25
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Deklarálás - ahogy írták, jelzés a fordítónak, hogy létezik a változó, függvény, osztály, akármi. A deklarálás nem foglalja magában a memóriaterület lefoglalását, illetve érték beállítását.


Példa: extern int i; //jelöljük, hogy i egy létező változó, de nincs neki memóriacím lefoglalva.


Definiálás - Amikor értelmet adsz a létrehozott elemnek. Ez nem kifejezetten az, hogy értéket adsz a változódnak, inkább csak memóriaterületet foglalsz le neki. Ebből fakadóan implicit módon értéke is lesz a változónak, vagy az ami a neki lefoglalt memóriaterületen éppen található, vagy konstruktorban meghatározott default érték.


Példa: int i; //jelezzük i létezését, és egyúttal memóriaterületet is kap, innentől kezdve bármikor elérjük az értékét, és módosíthatjuk azt.


És van még az inicializálás, ami explicit módon történő kezdőérték adást jelöl. Nyilván egy inicializálás során, vagy az előtt deklarálod és definiálod is a változódat.


pl. int i = 5; //i-t itt nem csak létrehozzuk, és memóriaterületet foglalunk neki, de közvetlen módon egy kezdőértéket is adunk neki. (Noha = jelet használunk, ez a C++-ban nem értékadás, hanem egy paraméterezett konstruktor (copy constructor))

2016. dec. 17. 18:02
Hasznos számodra ez a válasz?
 4/4 tabaki ***** válasza:
53%

„pontosan mit nevetünk...”


int hihi;

extern char hehehe;

2016. dec. 17. 22:54
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!