Mire valók a névterek (namespace) a c++ nyelvben?
Kezdjük ott, hogy az osztályok implicit generálnak névteret is. A névtér arra való, hogy a neveket csoportokba, hierarchikus fába rendezze. Hogy ne az enum nevébe kelljen beleírni, hogy GAME_STATE_INVALID, hanem a game osztály vagy névtér state névterének lehet egy INVALID nevű enumja.
Gyakorlatilag a névütközéseket elkerülendő, szerveződési egység.
A névtér egy logikai egysége a programnak. Szemben pl. a fizikai egysége a fájl. Egyszerűsítve: A névtér egy prefixet ad minden dolog nevének amit tartalmaz. A C++ névterek inkább funkcionális bontást adnak, kevésbé hierarchikus. Általában nincs olyan sok szint, mint más nyelvekben.
Ne használj using namespace-t, mivel nehezen irányítható és olyan dolgokat is behúz amit nem szükséges. A te osztályod használója meg ütközést tapasztalhat egy másik névtér behúzása miatt.
Tegyük fel, hogy használsz egy fájlkezelő és egy xml kezelő függvénykönyvtárat, és mondjuk mindkettőben van open() függvény. Miután mindkettőt be-include-oltad, lesz két ugyanolyan nevű függvényed. Ezt elkerülendő szokás őket külön névtérbe helyezni.
De ez csak egy példa volt a sok közül.
További 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!