Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

c++: ich kapiere diesen code nicht ganz.

Yves3 / 5 Antworten / Baumansicht 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
Yves3 thomas woelfer „c++: ich kapiere diesen code nicht ganz.“
Optionen

jetzt sehe ich wieder klar;) ... danke!

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

Hey den Code kenne ich noch aus grauer Vorzeit :-p Der ist von Jesse Liberty oder ?

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
Yves3 PaoloP „Hey den Code kenne ich noch aus grauer Vorzeit :-p Der ist von Jesse Liberty...“
Optionen

jep.
ich hab das buch "jetz lerne ich C++" von jesse liberty.
ich halte es für ein sehr gutes buch. alles ist logisch und verständlich aufgebaut. (anders als dieser salat der in dem buch stand, das ich vorher ausgelehnt hatte)

hast(hattest) du auch dieses buch?


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