dynamic_cast



  • Hallo,
    ich mühe mich schon eine geraume Zeit damit ab,
    richtig zu casten.

    in C# gibt es dafür den is oder as Operator
    Wie schreibe ich den in VS 05 C++ Express

    private: void TextBoxBLaenge()
    {
      for each Control^ c in this->Controls)
       {
         if(dynanic_cast < c^ >(TextBox) != nullptr)
          {
            c->MaxLength = 5;
    
          }
       }
    }
    

    in der Zeile if....Sagt er mir Syntaxfehler:Bezeichner 'c'
    Kann mir jemand sagen,wie ich den "Cast"-Ausdruck richtig schreiben muss.
    Danke im Voraus
    Grüße
    Ludwig



  • In die spitzen Klammern kommt der Typ und in die runden Klammern der Ausdruck.

    if (dynamic_cast< TextBox^ >(c) != nullptr)
    

    Gilt auch für die Zuweisung darunter 😉



  • Hallo,
    danke für die Rückantwort und den Hinweis.
    Ich habs mittlerweile so gelöst und für die,
    die einmal kurz nachschauen,hier der Code:

    private: void TextBoxLaengenBegrenzung()
      {
         for each(Control^ c in this->Controls)
    	{
    	   TextBox^ tb = dynamic_cast<TextBox^>(c);
    	   if( tb != nullptr)					 
    	     {
    		 tb->MaxLength = 5; 				  
    	     }
        }
     }
    

    Grüße
    Ludwig


Log in to reply