Spații de nume

utilizarea compoziției spațiului de nume

cele mai bune practici în programare sugerează sechestrarea de noi date saufuncționalitate într-un spațiu de nume unic, numit în mod sănătos, atunci când este posibil. Acest lucru este considerat un avantaj față de aruncarea tuturor în spațiul de nume global, deoarece căutarea numelui poate fi activată în mod explicit sau dezactivată ca mai sus, simbolurile sunt mutilate în mod constant fără prefixe sau macrocomenzi repetitive etc.

de exemplu, luați în considerare un proiect care definește majoritatea claselor sale în namespace gtk. Este posibil să adaptați namespace gtk la namespace std utilizând o caracteristică C++numită compoziție namespace. Aceasta este ceea ce se întâmplă ifa folosind-declarație este pus în anamespace-definiție: simbolul importat(E) devine importate în thecurrently activ namespace(e). De exemplu:

namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}

în acest exemplu,std::stringeste importat în namespace gtk. Rezultatul este că utilizareastd::string în interiorul spațiului de nume gtk poate folosi doar string , fără explicit qualification.As un bonus suplimentar, std::string nu este importat în spațiul de nume global. În plus, se poate face un aranjament mai elaborat pentru compatibilitate și portabilitate înapoi, prin careusing-declarațiile pot fi înfășurate în macro-uri care sunt setate pe baza testelor autoconf la „” sau adică using std::string; (în funcție de faptul dacă sistemul haslibstdc++ în std:: sau nu). (idei dinllewelly și Karl Nelson)

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Previous post Epoca de aur a televiziunii s-a încheiat
Next post aplicațiile de urmărire a perioadelor nu sunt pentru femei