Benutzer mit den meisten Antworten
Zeiger auf Klassenobjekte

Frage
-
Ich lerne gerade C++ (also nicht so kompliziert erklären) und ich hab dazu eine Frage:
Angenommen ich hab die Klasse Becher und erstelle damit mehre Becher. Wie kann ich auf diese erstellten Becher mit einem Zeiger zeigen und wie kann ich diese Zeiger in einem Vektor speichern?
Antworten
-
#include <tchar.h> #include <vector> // Das ist unser Becher... class Becher { public: int Irgendwas; }; int _tmain() { // So lengt man einen Becher lokal in dieser Funktion an: Becher b; // so greift man lokal darauf zu: b.Irgendwas = 12; // So lengt man den Becher auf dem Heap an: Becher *pb = new Becher(); // so greift man darauf zu: pb->Irgendwas = 13; // hier wurde jetzt ein Zeiger verwendet // Und so legt man die Becher in einem Vector an: std::vector<Becher> vieleBecher; // Und so kann man sie hinzufügen: vieleBecher.push_back(b); vieleBecher.push_back(*pb); // Und so kann man darauf zugreifen: vieleBecher[0].Irgendwas = 14;
// Und so löscht man den Becher wieder auf dem Heap:
delete pb; }
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Jochen Kalmbach Mittwoch, 24. Juni 2009 16:05
- Als Antwort markiert Martin RichterModerator Dienstag, 30. Juni 2009 11:52
Alle Antworten
-
#include <tchar.h> #include <vector> // Das ist unser Becher... class Becher { public: int Irgendwas; }; int _tmain() { // So lengt man einen Becher lokal in dieser Funktion an: Becher b; // so greift man lokal darauf zu: b.Irgendwas = 12; // So lengt man den Becher auf dem Heap an: Becher *pb = new Becher(); // so greift man darauf zu: pb->Irgendwas = 13; // hier wurde jetzt ein Zeiger verwendet // Und so legt man die Becher in einem Vector an: std::vector<Becher> vieleBecher; // Und so kann man sie hinzufügen: vieleBecher.push_back(b); vieleBecher.push_back(*pb); // Und so kann man darauf zugreifen: vieleBecher[0].Irgendwas = 14;
// Und so löscht man den Becher wieder auf dem Heap:
delete pb; }
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Jochen Kalmbach Mittwoch, 24. Juni 2009 16:05
- Als Antwort markiert Martin RichterModerator Dienstag, 30. Juni 2009 11:52