Ich arbeite mich gerade in C++ ein anhand eines Beispiels. Nun meine erste Frage: Was bedeutet dieser Code: Datenbank_Interface * pDbIf = create_DB_STLVektor(); Wie ich es bisher verstehe: Datenbank_Interface ist eine Klasse pDbIf ist ein Objekt der Klasse Meine Fragen: Was soll der *? Irgendwas mit Zeigern? Was das "= create_DB_STLVektor();" soll, verstehe ich auch nicht.
Rolf schrieb: > Ich arbeite mich gerade in C++ ein anhand eines Beispiels. Nun meine > erste Frage: Was bedeutet dieser Code: an Beispielen zu lernen ist der falsche weg - du musst mit den Grundlagen anfangen! > Datenbank_Interface * pDbIf = create_DB_STLVektor(); dann sollte man einfach erkennen das create_DB_STLVektor eine funktion ist die etwas zurückgibt. Vermutlich ein zeiger auf eine instanz von Datenbank_Interface. Und ja der * hat etwas mit zeiger zu tun, aber das sind Grundlagen die man wissen sollte.
Peter II schrieb: > an Beispielen zu lernen ist der falsche weg - du musst mit den > Grundlagen anfangen! Ich kombiniere das: Zum Einen lernen ich nach http://ladedu.com/cpp/ die Grundlagen. Zum Anderen schaue ich mir zur Abwechslung Beispiele an, die ich verstehen möchte.
Datenbank_Interface * pDbIf definiert einen Pointer namens "pDbIf", der nachher auf ein Objekt ("Objekt-Variable") vom Typ "Datenbank_Interface" zeigt. mit der Funktion = create_DB_STLVektor() wird der Pointer "pDbIf" auch gleich initialisiert, "create_DB_STLVektor()" gibt also eine Adresse zurück die auf ein, vermutlich neu erzeugtes, Objekt vom Typ "Datenbank_Interface" zeigt. ... falls ich mich irre wirds sicher gleich jemand richtig stellen
Peter II schrieb: > dann sollte man einfach erkennen das create_DB_STLVektor eine funktion > ist die etwas zurückgibt. Vermutlich ein zeiger auf eine instanz von > Datenbank_Interface. Dass Funktionen einen Rückgabewert haben, den man einer Variablen zuweisen kann, ist mir bekannt. Aber dass man den Rückgabewert dem Zeiger einer Instanz einer Klasse zuweisen kann, ist mir neu.
Rolf schrieb: > Datenbank_Interface * pDbIf = create_DB_STLVektor(); > > Wie ich es bisher verstehe: > Datenbank_Interface ist eine Klasse Es ist wohl ein Datentyp - vermutlich eine Klasse. > pDbIf ist ein Objekt der Klasse Es ist ein Zeiger auf diesen Typ. In ihm kann ich die Adresse eines Objekts speichern. > Meine Fragen: > Was soll der *? Irgendwas mit Zeigern? Ja. Es macht pDbIf zu einem Zeiger. > Was das "= create_DB_STLVektor();" soll, verstehe ich auch nicht. die Funktion create_DB_STLVektor() wird aufgerufen und der Zeiger wird mit dessen Rückgabewert initialisiert (nicht zugewiesen). Rolf schrieb: > Dass Funktionen einen Rückgabewert haben, den man einer Variablen > zuweisen kann, ist mir bekannt. Aber dass man den Rückgabewert dem > Zeiger einer Instanz einer Klasse zuweisen kann, ist mir neu. Was meinst du mit "Zeiger einer Instanz einer Klasse"? In deinem Beispiel kommt nirgends eine Instanz einer Klasse vor. Und warum sollte man einem Zeiger nicht den Rückgabewert einer Funktion zuweisen können? Der Zeiger ist auch nur eine Variable wie jede andere. Das sind aber absolute Grundlagen. Stehen die in deinem Buch nicht ausführlich erklärt? Dann solltest du es wegwerfen und ein besseres kaufen. Und nein, ohne Buch (oder gutes Tutorial) kann man C++ nicht vernünftig lernen. Glaub mir, ich hab's lange versucht - viel zu lange.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.