C++ programnyelvben mi az a namespace?
A névtér a logikailag összetartozó entitások (típusok, függvények, változók...) gyűjtemény. Egy azonosítóval ellátott, a globálisnál szűkebb hatókor.
Semmi köze a whitespace karakterekhez meg az üres sorokhoz, azokat a preprocesszor úgyis kiszedi.
A namespace ami magyarul névtér, az biztosítja az egyértelműséget függvényhívás esetén. Ezt úgy éri el, hogy szinte minden beépített függvény egy névtér része (többnyire az std (=standard) névtéré). Te is létre tudsz hozni névtereket, illetve ha osztályt hozol létre, az is névtérként működik.
Ennek eredményeképp vegyük például az alábbi esetet: létezik például std::string szövegtípus. Ha using-gal meghívod, vagy a teljes névteret megnyitod neki, akkor std::string helyett csak string-et kell írnod.
Viszont mi történik, ha egy saját string nevű típust/osztályt akarsz használni, és nem akarod máshogy nevezni? Akkor azt beteszed egy másik névtérbe, és úgy hivatkozol rá. Például sajat::string
VISZONT!! Ha ütközés van, akkor nem fordul le a kód, mert nem tudja eldönteni, mit használjon: ilyen eset, ha van a kódban "using namespace std;" és "using namespace sajat;" is. Ekkor nem lehet olyat, hogy string szoveg; ,mert nem tudja osztályhoz kötni. Ilyenkor jelölni kell, melyik névtér string típusát akarod használni, azaz kiírod a scope-ját (sajat::string vagy std::string)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!