Ich habe mir ein Beispielprogramm fuer zeiger auf objekte mal angeschaut und da ist mir aufgefallen das der Zeiger der auf die Objekte automatisch bei new erhoet wird.
Habe ich das so richtig verstanden?Ich brauch also bei dynamischer Speicherzuweisung mit new meinen Zeiger nicht erhoehen wenn ich ein neues Objekt erstelle?
PHP-Code:
#include <iostream.h>

class Box
{
   
int Laenge;
   
int Breite;
   
Box *AndereBox;
public:
   
Box(void);          //Konstruktor
   
void Setze(int NeueLaengeint NeueBreite);
   
int HoleFlaeche(void);
   
void ZeigeAufNaechste(Box *ZeigeDahin);
   
Box *HoleNaechste(void);
};

Box::Box(void)        //Implementation des Konstruktors
{
   
Laenge 8;
   
Breite 8;
   
AndereBox NULL;
}

// Diese Methode setzt die Größe der Box auf die Parameter
void Box::Setze(int NeueLaengeint NeueBreite)
{
   
Laenge NeueLaenge;
   
Breite NeueBreite;
}

// Diese Methode berechnet den Flächeninhalt der Box und gibt ihn zurück
int Box::HoleFlaeche(void)
{
   return (
Laenge Breite);
}

// Diese Methode lässt den Zeiger auf den Parameter zeigen
void Box::ZeigeAufNaechste(Box *ZeigeDahin)
{
   
AndereBox ZeigeDahin;
}

// Diese Methode gibt die Box, auf die die momentane zeigt, zurück
Box *Box::HoleNaechste(void)
{
   return 
AndereBox;
}

int main()
{
Box *Start NULL;    // Zeigt immer auf den Beginn der Liste
Box *Temp;            // Arbeitstier
Box *BoxZeiger;        // Für das Erzeugen von Boxen

                             // Erzeuge die Liste
   
for (int Index Index 10 Index++)
   {
    
BoxZeiger = new Box;  //Hier mueste ich doch den zeiger normalerweise erhoehen?
    
BoxZeiger->Setze(Index 1Index 3);
    if (
Start == NULL)
    {
       
Start BoxZeiger;             // Erstes Element in der Liste
    
}
    else
    {
       
Temp->ZeigeAufNaechste(BoxZeiger); // Zusätzliches Element
    
}
    
Temp BoxZeiger;
   }

                             
// Gib die Liste aus
   
Temp Start;
   do
   {
    
cout << "Der Flaecheninhalt ist " << Temp->HoleFlaeche() << "\n";
    
Temp Temp->HoleNaechste();
   } while (
Temp != NULL);

                             
// Lösche die Liste
   
Temp Start;
   do
   {
    
Temp Temp->HoleNaechste();
    
delete Start;
    
Start Temp;
   } while (
Temp != NULL);

   return 
0;
}


// Ergebnis beim Ausführen
//
// Der Flaecheninhalt ist 3
// Der Flaecheninhalt ist 8
// Der Flaecheninhalt ist 15
// Der Flaecheninhalt ist 24
// Der Flaecheninhalt ist 35
// Der Flaecheninhalt ist 48
// Der Flaecheninhalt ist 63
// Der Flaecheninhalt ist 80
// Der Flaecheninhalt ist 99
// Der Flaecheninhalt ist 120