Neuling hat Fragen



  • FUNPAQ schrieb:

    Was genau bedeutet dieses void? Sprich, für was wird es verwendet?

    'void' ist ein Datentyp, der keine Elemente hat (d.h. es gibt keine Werte vom Typ void). Man verwendet void in 2 Situationen:

    1. Eine Funktion, die keinen Wert zurückliefert: void funktion() { ... }
    2. Ein Zeiger auf einen beliebigen Typ: void *p; p kann jetzt die Adresse jedes beliebigen Objekts aufnehmen, aber um an das zu kommen, worauf p zeigt ("dereferenzieren"), muss p erst wieder in einen Zeiger auf den richtigen Typ umgewandelt werden. void-Zeiger sind in sauberem C++ aber eher unüblich.

    2. Zeiger:
    Wo liegt darin der unterschied und für was wird es jeweils verwendet?

    Unterschied wozwischen?

    char* cGröße = "Groß";
    

    Ich glaube das wird u.a. für die Argumentübergabe per Adresse genutzt - und für was noch?

    z.B. Dynamische Datenstrukturen (Listen, Bäume, ...)

    3. Stack:
    Ich weiß zwar wie man etwas in dem Heap-Speicher ablegt, aber nicht auf den Stack, oder werden die Variablen dort automatisch abgelegt?

    Funktions-lokale Variablen (Speicherklasse "auto") werden oft auf dem Stack abgelegt (Register wären auch möglich), aber das ist eigentlich uninteressant -- wichtig ist, dass sie beim verlassen ihres Gültigkeitsbereiches "auto"matisch zerstört werden.

    Die 4. Frage ist ein wenig zu allgemein, darüber schreiben andere Leute Bücher ... viel Spaß beim Lesen.



  • Besser gesagt dreifach hält besser 🙂

    @Mastah: Kürzer und dann auch noch letzter *tztztz* 😉

    wird es in der Regel auf dem Stack abgelegt ansonsten auf dem Heap.

    Wusste ich gar nicht, wann wird etwas noch auf dem Heap angelegt?

    Achja und ob Volkards Tutorial wirklich für "Was mach ich mit Klassen und OOP" so gut geeignet ist :).

    MfG SideWinder



  • Vierfach hält langsam aber, oder tippt noch jemand?



  • SideWinder schrieb:

    Besser gesagt dreifach hält besser 🙂

    Merkst' was? 😉

    SideWinder schrieb:

    MaSTaH schrieb:

    wird es in der Regel auf dem Stack abgelegt ansonsten auf dem Heap.

    Wusste ich gar nicht, wann wird etwas noch auf dem Heap angelegt?

    Es gibt außer dem Stack und dem Heap noch andere Speicherbereiche. Static-Variablen liegen auch nicht auf dem Stack und nicht auf dem Heap.
    Außerdem gibt es z.B. Thread Local Storage oder Shared Memory. Das ist dann aber in der Regel plattformabhängig.



  • cd9000 schrieb:

    Das ist dann aber in der Regel plattformabhängig.

    In welchem Forum bin ich denn hier? Im plattformabhängigem C++ Forum? Was ich gesagt habe sollte als kleine Erklärung aber völlig ausreichen 😉 .



  • Ich habe mein Posting verbessert und Static-Variablen aufgenommen.

    Dass die weder auf dem Stack noch auf dem Heap liegen, ist IMHO nicht plattformabhängig. Zufrieden? 🙂



  • Ja, wahrscheinlich weil im Standard nie von Stack oder Heap (ausser bei den entsprechenden Containern bzw. Algorithmen) die Rede ist.



  • 😮 Herzlichen Dank für die ganze Hilfe 😮
    Jetzt ist mir vieles wesentlich klarer. Den Rest schau ich dann nochmal im FAQ und/oder Buch nach.

    Noch kurz zum Buch. Ich benutze Visual C++ 6 Schritt für Schritt. Gibt es noch ein Buch welches ich für den Einstieg zusätzlich kaufen sollte?



  • Eins kaufen - fertig lesen ;). Das "Problem" an deinem Buch ist wohl das "Visual" davor. Ich vertrete die Meinung, dass man zuerst Standard C++ lernen sollte und dann auf die Windowsprogrammierung umsteigen sollte. Natürlich werden auch in deinem Buch zuerst die Standards besprochen und dann die "Visual-Prorgammierung" erklärt - trotzdem.

    Wenn du das Buch schon hast würde ich es erst einmal fertig lesen! Wenn du wirklich Standard-C++ lernen willst: "C++ lernen und professionell anwenden" von Peter Prinz und Ulla Kirch-Prinz ist sehr zu empfehlen.

    Danach weiter mit den 2 Büchren von Scott Meyers und dann musst du entscheiden was du machen willst ;).

    Tip: Wenn auf einem Buch "in 21 Tagen" draufsteht ist das die Zeit für die ersten 2 Kapitel 😃 ;).

    MfG SideWinder



  • 👍 Danke, dann werde ich mich mal wieder dransetzen und weiter arbeiten.


Anmelden zum Antworten