C ++ Namespaces

C ++ Namespaces
Der Namespace ist ein Container für Kennungen. Wenn wir in C ++ eine Deklaration wie einige Variablen, Funktionen und Klassen in unserem Programm benötigen, stecken wir es in eine Gruppe. Diese Gruppe heißt Namespace. Namespace ist also eine Gruppe von Erklärungen.

Identische Merkmale des Namespace

A. Der Namespace ist im Allgemeinen ein Schlüsselwort, und wir verwenden den Namespace mit jedem eindeutigen Namen in unserem Programm.

B. Wir verwenden den Namespace in unserer Quelldatei. Der Namespace kann auch in der benutzerdefinierten Header -Datei verwendet werden. Dies bedeutet, dass wir eine Header -Datei erstellen und in der Header -Datei können wir den Namespace verwenden.

C. Der Namespace stellt den Namen seines Mitglieds in einen bestimmten Raum, so dass sie nicht mit den Namen in anderen Namensspitzen oder globalen Namespaces in Konflikt stehen.

Erstellen eines Namespace im C ++ - Programm

Namespace Myexample
// Erklärungen

A. Im Gegensatz zur Klassendefinition endet die Namespace -Definition nicht mit einem Semikolon.

B. Der Namespace muss im globalen Bereich deklariert oder in einem anderen Namespace verschachtelt werden (1).

C. Der Namespace hat ein weiteres wichtiges Merkmal. Wir können einen Alias ​​-Namen für unseren Namespace -Namen verwenden. Es kann verwendet werden als:

Namespace me = myexample;

Hier ist ich der Alias ​​-Name des Namespace Myexample. Wenn wir es einmal deklarieren, können wir diesen Namespace Myexample als ich im gesamten Programm verwenden.

Unbenannte Namespaces

Ein Namespace mit keinem Namen kann auch im C ++ - Programm zulässig sein.

Namespace

// Erklärungen

Programmierbeispiel 1:

#enthalten
Verwenden von Namespace STD; // Namespace verwenden;
Namespace Myexample
int x;
int fun1 ();
Klassenbeispiel

öffentlich :
void fun2 ();
;

int myexample :: fun1 ()

Cout<<“ Hello fun1 :\n ” ;

void Myexample :: Beispiel :: Fun2 () /* :: Scope -Auflösung /Operator wird hier verwendet.*/

Cout<<“ Hello fun2 :\n ” ;

Verwenden von Namespace Myexample; // Namespace wird hier verwendet.
int main ()

x = 6;
fun1 ();
Beispiel OB; // Erstellen Sie eine Instanz der Beispielklasse
ob.fun2 ();

Ausgang:

Erläuterung:

Hier haben wir erklärt, dass ein Namespace Myexample genannt wird. Innerhalb des Namespace haben wir eine Variable 'x'und eine Funktion fun1 () deklariert. Ein Klassenbeispiel wird auch im Namespace deklariert. Eine andere Funktion namens Fun2 () wird im Klassenbeispiel deklariert.

Wenn wir in unserer Hauptfunktion einige Werte in der Variablen 'x' zuweisen, müssen wir schreiben

Myexample :: x = 6;

Da die x -Variable in der Hauptfunktion nicht deklariert wird. Es ist das Mitglied des Namespace Myexample. Also müssen wir schreiben:

Namespace :: x;

:: wird genannt Aperator für den Umfang Auflösung. Wir müssen den Namespace :: x = 6 in der Hauptfunktion schreiben, um auf die Variable X zuzugreifen.

Wenn wir die Funktion Fun1 () aufrufen wollen, müssen wir sie definieren. Wir müssen schreiben:

int myexample :: fun1 ()

Fun1 () ist das Mitglied des Myexample -Namespace, wir müssen es definieren. Wir müssen Fun1 () mit seinem Namespace- und Scope -Auflösungsoperator (: :) definieren (:).

Wenn wir den Fun2 () innerhalb des Klassenbeispiels anrufen möchten, müssen wir schreiben:

void myexample :: Beispiel :: fun2 ();

Da die Funktion fun2 () das Mitglied des Namespace Myexample ist, und im Klassenbeispiel müssen wir Folgendes schreiben:

Verwenden von Namespace STD;

In der Fun1 () verwenden wir eine Cout -Anweisung. Es ist ein vordefiniertes Objekt. Seine Erklärung existiert in einem Namespace namens STD. Dieser Namespace ist bereits in einer Datei namens definiert iostream. Wir müssen diese Datei in unser Programm einbeziehen.

Programmierbeispiel 2:

#enthalten
Verwenden von Namespace STD;
Namespace Myexample

int x;
void fun1 ();
Klassenbeispiel

öffentlich:
void Beispiel ()

Cout<<“ example is a function :\n ” ;

;

Verwenden von Namespace Myexample;
void myexample :: fun1 ()

Cout<<“ in fun1 ” ;

int main ()

x = 6;
Beispiel OB;
ob.Beispiel() ;
fun1 ();

Ausgang:

Erläuterung:

Eine Namespace -Definition kann über mehrere Dateien fortgesetzt und erweitert werden (1).

Datei1.H
Namespace Myexample int x, y;
void fun1 ();

Datei2.H
Namespace Myexample int u, v;
void fun2 ();

Angenommen, wir haben zwei Header -Dateien namens Datei1.H und Datei2.H . In Datei1.H, wir verwenden einen Namespace namens Myexample. Im Myexample befinden sich zwei Variablen x und y und eine Funktion namens Fun1 () wird deklariert.

In Datei2.H, wir verwenden einen anderen Namespace mit demselben Namen namens Myexample. Im Myexample befinden sich zwei Variablen x und y und eine Funktion namens Fun2 () wird deklariert.

Wenn wir diese beiden Dateien in unser Programm aufnehmen, haben wir möglicherweise ein Missverständnis, dass zwei verschiedene Namespace denselben Namen haben, der existiert. Name Konflikt kann auftreten. Tatsächlich gibt es im Programm nur ein Namespace Myexample. Innerhalb dieses gleichen Namespace werden alle Variablen X, Y, U, V und Fun1 (), Fun2 () hinzugefügt. Zwei verschiedene Namespace können hier nicht existieren.

Abschluss:

In Details über den Namespace sind wir zu dieser Schlussfolgerung gekommen, dass der Namespace uns eine eindeutige Funktion in unserem C ++ - Programm liefert, das unsere Erklärungselemente wie Variablen, Funktionen und Klassen auf systematische Weise organisiert.

Quelle:

(1) studytonight.com. N.P., Netz. 12 Apr. 2022. https: // www.studytonight.COM/CPP/Namespace-in-CPP.Php