_Zeiger__Polymorphie



  • Hallo !
    Kann mir jemand sagen, ob diese Konstruktion auch ohne Cast funktioniert ?

    __int32 main()
    {
    	System::String __gc *__gc *VarA;
    	(*VarA) = S"Hallo Welt\n";
    	System::Object __gc *__gc *VarB = VarA;
    	System::Console::Out->Write((*VarB)->ToString());
    }
    

    Ich meine, er (VC 7.1 Pro) frisst es nicht, will den Pointer nicht selbst casten. Dabei gilt doch :

    __gc class String : public Object,
                        public ... // etc
    

    mfg CanDL



  • Nur eine Vermutung: Der operator * ist überschrieben so dass Typumwandlung auf einfache Pointer-Ebene stattfinden kann, jedoch nicht bei Pointer auf Pointer Ebene.
    So das die einzige Möglichkeit die du hast ist über eine temp Variable mit einen Pointer zu gehen.


Anmelden zum Antworten