Bedutung von using namespace
-
Hallo,
ich versuche mir selbst programmieren beizubringen und habe ein Programm entdeckt welches die Benutzung von new und delete demonstriert.
#include <list> #include <iostream> using namespace std; class Kugel { private: int id; static int gid; public: Kugel():id(++gid){} ~Kugel() { cout << "Kugel " << id << " wird geloescht" << endl; } int getID() { return id; } }; int Kugel::gid = 0; int main() { // 4 Kugeln auf dem Heap anlegen Kugel* k = new Kugel; Kugel* k2 = new Kugel; Kugel* k3 = new Kugel; Kugel* k4 = new Kugel; std::list<Kugel*> l; l.push_back(k); // Jetzt speichern wir Zeiger in der List l.push_back(k2); // d.h, es wird der Zeiger //kopiert und NICHT das ganze l.push_back(k3); // Objekt for(std::list<Kugel*>::iterator it = l.begin(); it!=l.end(); ++it) cout << "Kugel " << (*it)->getID() << endl; it = l.begin(); ++it; delete *it; // Kugel 2 vom Heap löschen l.erase(it); // Zeiger auf den nicht mehr gültigen Block entfernen for(it = l.begin(); it!=l.end(); ++it) cout << "Kugel " << (*it)->getID() << endl; // Kugel 4 löschen weil ich Bock drauf hab: delete k4; // Hier wird auch der Dtor aufgerufen cin.get(); return 0; }Ich habe das so verstanden:
Jemand hat eine Klsasse List geschrieben, die mit Tempates arbeitet.
Nun möchte ich die Klasse benutzen und füge sie mit "#include <list>" ein.Wozu ist aber dieses "using namespace std;" gut?
Warum muss ich vor dem gebrach der klasse auch dieses std schreiben "std::list<Kugel*> l;"
Und woran erkenne ich, dass und wann ich dieses "using namespace" anwenden muss.
-