Variabeln "leeren"



  • Hallo zusammen,
    ich habe eine kurze Frage bezüglich Variabeln. Wie kann ich eine Variabel wieder "leeren", also das kein Wert mehr enthalten ist?

    Ich hoffe, ihr versteht mein Anliegen (sonst werde ich ein kleines Beispielprogramm posten)

    Vielen Dank für eure Hilfe
    lg, freakC++



  • In C++ hat jede Variable immer einen Wert..

    Du musst da halt einfach auf 0 setzen..

    Im neuen Standard gibt es dann den null Pointer, welcher "nichts" darstellen soll.



  • An deinem Beispielprogramm bin ich noch interessiert, vielleicht meinst du nämlich etwas anderes. Wäre gut, wenn du das mal posten könntest.

    P.S. Nullzeiger gibt es im Standard schon jetzt, nur nicht als typsichere nullptr -Version. 😉



  • Hallo,

    hier mein Beispielcode (sorry, aber das gehört eigentlich nicht in das Forum, aber ich war zu faul es umzuschreiben 😃 ...aber ihr könnt es eventuell verschieben)!!!

    String Wort;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     ::Wort = Edit1->Text;
     ShowMessage(::Wort);
     String wort = Edit2->Text;
     Label1->Caption = wort;
    }
    

    Ich habe zwei Variabeln mit gleichem Namen. Wenn ich mittels Edit1 eine Variabel eingebe, dann wird diese auch schön brav angezeigt. WEnn ich dann jedoch über Edit2 eine Variabel eingeben, wird die Variabel von Edit1 nochmals angezeigt und dann erst wir die über Edit2 eingegeben Variabel auf das Label geschrieben. Ich müsste also irgendwie die Variabel Wort "leeren".

    Des Weietern habe ich gedacht, dass wenn ich eine globale und eine lokale Variabel von gleichem Namen habe, dass diese quasi völlig unteschiedlich sind (also wie andere Namen)...dies ist aber wohl nicht der Fall...

    Ich hoffe, dass ihr mich besser versteht und das mein Borlandcode hier nicht allzu schlimm ist 🙂
    lg, freakC++



  • freakC++ schrieb:

    Ich müsste also irgendwie die Variabel Wort "leeren".

    ::Wort = String();
    

    Des Weietern habe ich gedacht, dass wenn ich eine globale und eine lokale Variabel von gleichem Namen habe, dass diese quasi völlig unteschiedlich sind (also wie andere Namen)...dies ist aber wohl nicht der Fall...

    Doch, das ist der Fall.



  • Gewisse Variablen kannst du als leer betrachten, wenn sie ihren Defaultwert besitzen. Also ein String, der auf "" gesetzt ist, ist leer. Oder etwas ausgedehnt, wenn Objekte ihren Nullwert haben (Zeiger, oder sogar arithmetische Typen).

    Von daher bin ich mir nicht ganz sicher, ob du das "Variablen leeren" nur auf Strings beziehst...?



  • freakC++ schrieb:

    und das mein Borlandcode hier nicht allzu schlimm ist 🙂

    Ich wuerde dir wirklich tiefstens ans Herz legen C++ richtig zu lernen. Programme zusammenzuklicken ist ja lustig, aber du lernst nichts dabei.

    Setz dich lieber mit einem guten Buch hin und lerne ohne die Assistenten auszukommen.



  • Hallo,
    also ich habe halt mir Borland also mit einer IDE angefange, weil dies im meinem Lehrbuch dabei war. Nun da ich es durch habe, bin ich auf die Konsole umgestiegen, um mehr "reines" C++ zu lernen. Aber wenn man nunmahl anschauliche Programme schreiben möchte, dann sind solche IDEs einfach super!

    Ich werde den von euch geposteten Quelltext sobald wie möglich ausprobieren.

    Vielen Dank
    lg, freakC++



  • freakC++ schrieb:

    Aber wenn man nunmahl anschauliche Programme schreiben möchte, dann sind solche IDEs einfach super!

    Zum Lernen von C++ ist ein VCL-Projekt weniger geeignet - Das hat aber nichts mit der IDE zu tun.


Anmelden zum Antworten