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
PaoloP Yves3 „jep. ich hab das buch jetz lerne ich C von jesse liberty. ich halte es für ein...“
Optionen

Ja ich habe das Buch noch und habe es damals etwa ein halbes Jahr lang recht intensiv durchgearbeitet und noch sehr gute Erinnerungen. Ein schönes Buch tatsächlich ;-)

Um meine Kentnisse dann zu vertiefen habe ich anschliessend das "C/C++ Kompendium" auch von M&T von Dirk Louis durchgewalzt - also 3x sogar ;-).
Einziges Manko: Konvertierungen von Datentypen und die dazu meist genutzen c-funktionen sprintf, wsprintf usw. sind etwas stiefmütterlich erklärt finde ich, hier fehlt eine tabelle der möglichen parameter - in einem kompendium erwarte ich sowas. Aber ansonsten ist alles drin zum lernen und immer wieder nachschlagen.

Wenn Du mal auf das Buch "C++ in 21 Tagen" stösst vielleicht als pfd also E-Book stellst Du fest das es das gleiche Buch wie "Jetzt lerne ich C++" ist nur noch ein paar Kapitel mehr.

Mfg

PS: Ich habe den compiler der auf dem buch dabei ist damals nicht zum laufen bekommen auf meinem damals top-modernen Win95-Rechner ;-).

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen