Unterschied zwischen Allokation, Deklaration, Definition und Initialisierung



  • Känpfe ein bisschen mit diesen begriffen:

    int x; // Deklaration einer Variablen vom Typ int und gleichzeige Speicherallokation aufem STack?

    int x = 1 // wie oben, nur dass die variable schon initialisiert ist?

    Was ist in diesem Zusammenhang dann Definition einer Variablen?



  • Ist beides eine Definition, und bei beidem wird Speicher auf dem Stack reserviert.



  • Guten Abend zusammen!

    Ich habe diesbezüglich eine Frage und möchte hier keinen neuen thread deswegen aufmachen.
    Folgendes Zitat ist aus dem Buch "Einführung in die Programmierung mit c++":

    string first_name; // first_name ist eine Variable vom Typ string

    Mit dieser Anweisung reservieren Sie einen Speicherbereich für einen String und nennen ihn first_name.

    Eine Anweisung, die einen neuen Namen in einem Programm einführt und Speicher für eine Variable reserviert, wird auch Definition genannt.

    In unserem Programmieruntericht haben wir diese Definition des Begriffs "Definition" als Deklaration kennengelernt.
    Im Gegensatz dazu wurde uns die Definition als das implementieren einer Funktion beschrieben.
    Was ist nun richtig?



  • Eine Deklaration ist eine Bekanntgabe, dass ein Objekt mit dem Namen existiert.

    Bei einer Definition wird das Objekt auch angelegt (Speicher verbraucht).

    Es spielt keine Rolle ob das Variablen oder Code ist.

    Daher ist eine Definition auch eine Deklaration (aber nicht umgekehrt)



  • Das Problem das du vermutlich hast ist das die normale Variablen Deklaration gleichzeitig eine Definition ist. Das liegt daran das man Variablen in der Regel ja auch verwenden will und somit Speicher reserviert werden muß. Wie bei Funktionen und Klassen gibt es allerdings für Variablen auch eine reine Deklarationsform die nur Deklariert. Diese Form wird bei Variablen aber eher selten gebraucht und verwendet ein extra Schlüsselwort. Da das ein etwas fortgeschritteneres Thema und für Anfänger nicht weiter wichtig ist wird es am Anfang in den Büchern auch nicht erwähnt. Merk dir daher einfach das Variablen bei Deklaration immer Definiert werden wärend man es bei Funktionen einfach so trennen kann.


Log in to reply