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;
}