[gelöst]MeinObject=null geht nicht?



  • ich such grad nach sowas wie null (kennt ihr vllt aus Java) hab schon NULL probiert kann ich aber nur für zahlen verwenden (NULL=0^^).

    Gibt es irgendnen "null" wert den ich variablen zuweisen kann ohne das deren Konstruktor aufgerufen wird?

    MeinObject test=null;
    

    null halt.

    thx for help



  • MeinObject *obj = 0;



  • Geht nur mit Zeigern. MeinObject* pointer = &object; pointer = NULL;



  • gibts nicht so direkt

    bei
    YourObject obj;
    wird immer der konstruktor aufgerufen

    was du suchst is n pointer auf des objekt, das kann NULL sein

    YourObject *obj = NULL;
    
    if(fasel)
        obj = new YourObject();
    
    .
    .
    .
    
    if(obj != NULL)
    {
        delete obj;
        obj = NULL;
    }
    


  • hm ich glaub dann muss ich mein Problem wohl mal genauer schildern:

    Ich hab ein Mehrdimensionales Array, in dem werte Gespeichert sind. Bei einer Iteration sollen die "null" werte übersprungen werden:

    MyObject objecte[][3]=
    {
    	{ MyObject(), MyObject(), null },
    	{ MyObject(), MyObject(), MyObject() },
    	{ MyObject(), null, null }
    };
    

    anderer Ansatz wären verschieden lange "zeilen" aber da meckert der Compiler. 😞



  • Auch in einem Array kann ein Objekt nicht "nichts" sein. Du wirst Zeiger verwenden müssen, oder einen bestimmten Zustand des Objekts als "ungültig" deklarieren.



  • auto-objekte werden immer automatisch erzeugt. in deinem fall musst du zeiger auf MyObject in deinem array speichern.

    MyObject* objecte[][3]=
    {
    	{ new MyObject, new MyObject, 0 },
    	{ new MyObject, new MyObject, new MyObject },
    	{ new MyObject, 0, 0 }
    };
    

    also im prinzip das gleiche wie in java.



  • nulla schrieb:

    ...also im prinzip das gleiche wie in java.

    Ist sowieso so so: Das, was der Javaist "Referenz" nennt, ist in C++ ein Zeiger.

    Gruß,

    Simon2.



  • Sagt ihm in diesem Zusammenhang abre auch, dass C++ im Gegensatz zu Java keinen Garbage Collector von Haus aus mitbringt, und er alle mit new erzeugten Objekte auch wieder mit delete löschen muss.

    MfG SideWinder



  • jo thx leute



  • hab ich - hab ich - #wink #fuchtel #gg


Log in to reply