Viss, kas jums jāzina par nosaukumvietu C ++



Šis raksts sniegs jums detalizētas un visaptverošas zināšanas par nosaukumvietu C ++. Tas ir dažāda veida un lietojums jebkurā programmā.

Vārdamvieta C ++ tiek izmantota, lai sakārtotu kodu loģiskās grupās un novērstu vārdu sadursmes, kas var notikt, īpaši, ja jūsu koda bāzē ir vairākas bibliotēkas. Šajā rakstā tiks ietvertas šādas norādes:

Nepieciešamība pēc nosaukumvietas

Apsveriet situāciju, mēs rakstām kodu, kuram ir funkcija ar nosaukumu abc (), un ir pieejama vēl viena iepriekš definēta bibliotēka, kurai ir arī tāda pati funkcija abc (). Tagad kompilēšanas laikā kompilatoram nav ne jausmas, uz kuru abc () versijas versiju mēs atsaucamies savā kodā.





Vārdamvieta c ++

Lai pārvarētu šīs grūtības, tiek izveidota nosaukumvieta, kas tiek izmantota kā papildu informācija, lai atšķirtu līdzīgas funkcijas, mainīgos, klases utt. Ar tādu pašu nosaukumu, kas pieejams dažādās bibliotēkās. Izmantojot nosaukumvietu, mēs varam definēt kontekstu, kurā vārdi tiek definēti. Būtībā nosaukumvieta nosaka darbības jomu.



Visi C ++ standarta bibliotēkas tipi un funkcijas tiek deklarētas standarta nosaukumvietā vai nosaukumvietās, kas ligzdotas SD iekšienē, tāpēc to plaši izmanto lielākajā daļā programmu.

deklarējot objektu masīvu Java

Nosaukuma vietas definēšana

Lai definētu nosaukumvietu, mēs sākam ar atslēgvārdu nosaukumvietu, kam seko nosaukumvietas nosaukums šādi:

namespace namespace_name {int a, b // kodu deklarācijas, kur // a un b ir deklarētas // namespace_name sfērā}

Norāda, kas jāatceras, definējot nosaukumvietu

  • Vārdamvietas deklarācijas parādās tikai globālā mērogā.
  • Vārdtelpas deklarācijām nav piekļuves specifikatoru.
  • Vārdamvietas deklarācijas var ievietot citā nosaukumvietā.
  • Pēc nosaukumvietas definīcijas aizvēršanas skavas nav nepieciešams dot semikolu.
  • Vārdtelpas definīciju var sadalīt vairākās vienībās.
#include izmantojot nosaukumvietu std namespace first_function {void func () {cout<< 'Inside first_function' << endl } } namespace second_function { void func() { cout << 'Inside second_function' << endl } } int main () { // Calls function from first name space. first_function::func() // Calls function from second name space. second_function::func() return 0 }

Izeja:



Iepriekš minētajā piemērā, lai noteiktu func () funkciju divos dažādos laikos, mēs izmantojam nosaukumvietas jēdzienu. Pirmo funkciju mēs definējam zem nosaukumvietas first_function unotrā funkcija zem nosaukumvietas. Lai izsauktu šīs funkcijas, mēs izmantojam darbības jomas izšķirtspējas operatoru šādā veidā - first_function :: func () un second_function :: func ().

Vārdamvietas izmantošana C ++

Vārdamvietu programmā var izmantot trīs veidos,

  1. Lietošanas direktīva
  2. Lietošanas deklarācija
  3. Darbības jomas izšķirtspējas operators (: :)

Lietošanas direktīva

Mēs varam izvairīties no vārdu vietu sagatavošanas ar izmantojot nosaukumvietas direktīva. izmantojot atslēgvārds ļauj mums importēt jūsu programmā visu nosaukumvietu ar globālu darbības jomu. To var izmantot, lai importētu nosaukumvietu citā nosaukumvietā vai jebkurā programmā atbilstoši mūsu prasībām.

Apsveriet galvenes failu Namespace_first.h:

nosaukumvieta Pirmā {int a class First_class {int i}}

Iepriekšminētā nosaukumvietas galvenes faila iekļaušana failā Namespace_second.h: iekļaujiet “Namespace_first.h”

nosaukumvieta Otrā {izmantojot nosaukumvietu Pirmā Pirmā_klases obj int y}

Mēs importējam namespace_First uz namespace_Second, tāpēc klase First_class tagad būs pieejama namespace_Second. Tādējādi mēs varam ierakstīt šo programmu atsevišķā failā, teiksim, new_file.cpp.

#include 'Namespace_second.h' void test () {izmantojot nosaukumvietu Second // objekta izveide First_class First_class obj2}

Tādējādi , izmantojot direktīvu, ir daudz vieglāk izmantot nosaukumvietu C ++, kur vien vēlaties.

kā padarīt jframe java

Lietošanas deklarācija

Izmantojot deklarāciju, mēs vienlaikus importējam vienu konkrētu nosaukumu, kas ir pieejams tikai pašreizējā darbības jomā, un tas tiek izsaukts, izmantojot darbības jomas izšķirtspēju. PIEZĪME. Nosaukums, kas importēts ar using-deklarāciju, var ignorēt importēto vārdu, izmantojot direktīvu. To mēs varam redzēt zemāk esošajā piemērā.

Apsveriet galvenes failu New_File.h:

nosaukumvieta Pirmā {void A () {cout<< 'A of First namespacen' } } namespace Second { void A() { cout << 'A of Second namespacen' } }

Tagad izveidosim jaunu programmas failu ar nosaukumu New_file_2.cpp ar zemāk esošo kodu:

#include 'New_file.h' void B () {izmantojot nosaukumvietu First // izmantojot direktīvu, izmantojot Second :: A // izmantojot deklarāciju First :: A () // Vārda vietas A kategorija () // A zvani A () otrās nosaukumvietas}

Darbības jomas izšķirtspējas operators (: :)

Jebkuru vārdu telpā deklarēto vārdu mēs varam precīzi norādīt, izmantojot nosaukumvietas nosaukumu un darbības jomas izšķirtspēju. :: ' operators ar identifikatoru.

nosaukumvieta New_space {klase X {static int i public: void func ()} // klases nosaukuma deklarēšanas klase Y} // Statiskās klases mainīgā inicializēšana int New_space :: X :: i = 23 klase New_space :: Y {int a public: int getdata () {cout<< a } // Constructor declaration Y() } // Constructor definition explicitly New_space::Y::Y() { a=0 }

Nepārtraukta nosaukumvieta C ++

Kā mēs zinām, vārda vietu C ++ var definēt vairākās daļās, tādējādi to veido atsevišķi definēto daļu summa. Tātad, ja vienai nosaukumvietas daļai nepieciešams nosaukums, kas definēts citā failā, šis nosaukums joprojām ir jādeklarē tā darbības jomā. Rakstot šādu nosaukumvietu šādā veidā, vai nu tiek definēta jauna nosaukumvieta, vai arī tiek pievienoti jauni elementi esošai:

namespace namespace_name {// koda pamatteksts}

Ligzdota nosaukumvieta C ++

Vārdamvietas var viegli ievietot ligzdās, un mēs varam definēt vienu nosaukumvietu citas nosaukumvietas iekšpusē šādi:

namespace namespace_name1 {// nosaukuma vietas_nosaukuma1 nosaukuma vietas nosaukuma vietas nosaukumvietas_nosaukums2 {// koda pamatteksta ligzdots nosaukumvietas_nosaukums2}}

Ar to mēs esam nonākuši pie nosaukuma vietas C ++ rakstā. Es ceru, ka jums radās ideja par to, kas tieši ir nosaukumvieta C ++ un kādi ir dažādi tā definēšanas veidi. Ja vēlaties uzzināt vairāk, iepazīstieties ar Autors: uzticams tiešsaistes mācību uzņēmums Edureka. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.

skaitļa ciparu summa java