C++ nyelvben a legtöbb definíció deklaráció is egyben? De mik a kivételek?
Esetleg osztályok statikus adattagjai kivétel?
#include <iostream>
class A {
public:
static int a;
};
//int A::a = 42;
int main() {
std::cout << A::a;
}
"deklaráció ha csak jelezzük, hogy ilyen néven, ilyen típussal használunk egy változót ami máshol van definiálva. Utóbbira C++-ban az extern int a; egy példa."
Nem.
A deklaráció az, amikor egy változóhoz azonosítót és esetleg tipust is rendelünk. Memóriafoglalás ebben az esetben is történik.
Az amit írsz /extern int a;/, egy integer tipusú változó deklarációja 'a' azonosítóval, és az érvényességi körének kiterjesztése /globálissá/ ezt jelzi az -extern-.
#3 Téves. A deklaráció csak jelzi a fordító számára a változó létezését, annak azonosítóját és típusát. A definíció az, amikor a változó számára memóriaterület is lefoglalásra kerül. C++ nyelven az int a; egy definíció, mivel ezen a ponton már memóriaterület kerül lefoglalásra számára.
Amit az extern-ről írtál, az igaz, csak nem teljes, az extern elsődleges feladata ugyanis jelezni, hogy az adott változó máshol kerül definiálásra, itt csak deklarálásra került. Ily módon ez ékes példája a deklarációnak definiálás nélkül.
A deklaráció, hogy létrehozod. Az inicializáció, amikor értékét adsz.
A definíció meg a függvény törzsének megírása.
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!