Objekterzeugung



  • Hallo zusammen,

    ich möchte einen Objekt von einer Klasse erzeugen, kriege das aber nicht hin:

    Mein Konstruktor sieht folgermaßen aus:

    Interpolator::Interpolator(Motion* pSampledMotion, char* pOffsetFileName)
    {
    
      bla bla 
    }
    

    Ich möchte hiermit ein Objekt erzeugen:

    char* OffsetFile = "text.txt";
    static Motion *pSampledMotion = NULL;
    
    void interpolate_callback(Fl_Button *button, void *) 
    {
    	//interpolate_button->value();
    	Interpolator neu = new Interpolator(pSampledMotion, OffsetFile);
    }
    

    Ich bekomme aber immer die dumme Fehlermeldung, kann auch nichts damit anfangen:

    --------------------Configuration: key_frame1 - Win32 Debug--------------------
    Compiling...
    player.cxx
    C:\Dokumente und Einstellungen\Resul\Desktop\Partition\BILKENT\Computer Animation\Motion Capture\Acclaim\asf_amc_viewer 1-18-2005\viewer\player.cxx(202) : error C2440: 'initializing' : cannot convert from 'class Interpolator *' to 'class Interpolato
    r'
            No constructor could take the source type, or constructor overload resolution was ambiguous
    Error executing cl.exe.
    
    key_frame1.exe - 1 error(s), 0 warning(s)
    

    Hat einer ne Idee ? würd mich echt freuen wenn einer mir mal unter die Arme greifen würde..

    Grüße



  • Jo...

    Interpolator neu(pSampledMotion, OffsetFile);
    

    Erzeugt ein neues Objekt auf dem Stack, das stirbt wenn der entsprechende Block (das mit den {} Klammern) zuende ist.

    Interpolator* neu = new Interpolator(pSampledMotion, OffsetFile);
    

    Erzeugt ein neues Objekt auf dem Heap, auf das der Zeiger "neu" zeigt. Für das Aufräumen bist Du verantwortlich.

    Du versuchst beides zu mischen 😉



  • Jo danke Dir, ist ein dummer Fehler gewesen ich weiss, auf jedenfall habe ich wieder was dazu gelernt, alles gute....

    elturco


Anmelden zum Antworten