Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von...

8
Namensräume (namespaces)

Transcript of Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von...

Page 1: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

Namensräume (namespaces)

Page 2: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß einmal zwei Funktionen gleichen Namens auftreten und es deshalb einen Fehler gibt.

Page 3: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

Deshalb gibt es in C++ sogenannte Namensräume. Das sind Gültigkeitsbereiche, in denen Variablen, Funktionen, Klassen usw. deklariert werden können.Deklariert man nun jede Bibliothek als eigenen Namensraum, dann kann der Compiler Funktionen gleichen Namens in verschiedenen Bibliotheken unterscheiden.

Page 4: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

Alle Bibliotheken der sogenannten Standard Template Library (STL) sind zum Namensraum std zusammengefasst.Er wird erklärt durch die using-Anweisung:using namespace std;

Page 5: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

Beispiel: Die Klasse string

Diese Klasse befindet sich in einer Bibliothek der STL und gehört zur Entwicklungsumgebung von MS VC++

Page 6: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

Mit Hilfe der Klasse string kann man bequemer mit Zeichenketten arbeiten

Page 7: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

#include "stdafx.h"#include <iostream>using namespace std; int main(){ string str; str ="abc"; str.append("hallo"); cout << "Zeichenkette=" << str.c_str() << endl << flush;}

append fügt an str, also "abc" die Zeichenkette "hallo" an.

Hilfe von MS C++ zu string benutzen !

Wandelt den String in die bisher von C uns bekannte Zeichenkette um.

würde man hier using namespace std weglassen, müsste man str wie folgt deklarieren:std::string str;

Bildschirmausgabe:abchallo

Page 8: Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.

#include "stdafx.h"#include <iostream>using namespace std;

In C++ sollen nicht mehr die include-Dateien mit Endung h benutzt werden, sondern die ohne eine Endung. Ausnahme: stdafx.h