Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

c++: ich kapiere diesen code nicht ganz.

Yves3 / 5 Antworten / Flachansicht Nickles

lo


ich bin momentan am c++ lernen und kapiere dieses übungsbeispiel nicht ganz. das programm soll zeigen, dass die übergabe von objekten als referenz oder zeiger effizienter ist.


die drei fett geschriebenen zeilen verstehe ich nicht. die erste ist nicht so wichtig, sie definiert einen kopierkonstruktor. das wird später im buch noch beschrieben.


bei der deklaration und definition der funktion "FunctionTwo" weiss ich nicht, wozu das erste "*" dient. ist das ein zeiger? kann eine funktion ein zeiger sein?? wenn ja, worauf zeigt dieser zeiger?


vilen dank für alle antworten!!!


// Listing 12.1
// Zeiger auf Objekte übergeben


#include <iostream.h>


class SimpleCat
{
  public:
 SimpleCat ();                    // Konstruktor
 SimpleCat(SimpleCat&);     // Kopierkonstruktor
 ~SimpleCat();                    // Destruktor
};


SimpleCat::SimpleCat()
{
 cout << "SimpleCat Konstruktor...\n";
}


SimpleCat::SimpleCat(SimpleCat&)
{
 cout << "SimpleCat Kopierkonstruktor...\n";
}


SimpleCat::~SimpleCat()
{
 cout << "SimpleCat Destruktor...\n";
}


SimpleCat FunctionOne (SimpleCat theCat);
SimpleCat* FunctionTwo (SimpleCat *theCat);


int main()
{
 cout << "Eine Katze erzeugen...\n";
 SimpleCat Frisky;
 cout << "FunctionOne aufrufen...\n";
 FunctionOne(Frisky);
 cout << "FunctionTwo aufrufen...\n";
 FunctionTwo(&Frisky);
 return 0;
}


// FunctionOne, Übergabe als Wert
SimpleCat FunctionOne(SimpleCat theCat)
{
 cout << "FunctionOne. Rueckkehr...\n";
 return theCat;
}


// FunctionTwo, Übergabe als Referenz
SimpleCat* FunctionTwo (SimpleCat  *theCat)
{
 cout << "FunctionTwo. Rueckkehr...\n";
 return theCat;
}

bei Antwort benachrichtigen
thomas woelfer Yves3 „c++: ich kapiere diesen code nicht ganz.“
Optionen

>> SimpleCat* FunctionTwo (SimpleCat *theCat);

Hier haben wir eine Funktion mit dem Namen 'FunctionTwo' die einen Parameter erwartet und einen Returnwert hat.

Als Parameter wird ein Zeiger auf ein Objekt vom Typ 'SimpleCat' erwartet.

Geliefert wird ebenfalls ein Zeiger auf ein Objekt vom Typ 'SimpleCat'.

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen