none
Zeiger auf Klassenobjekte RRS feed

  • 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?
    Mittwoch, 24. Juni 2009 14:13

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++)
    Mittwoch, 24. Juni 2009 15:34

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++)
    Mittwoch, 24. Juni 2009 15:34
  • Danke dir!! Ich galub damit kriege ich das hin.
    Mittwoch, 24. Juni 2009 15:54