Rückgabewert NULL bei statischer Fkt.



  • Hallöchen,

    Ich habe eine statische Methode zur Objekterzeugung,nennen wir sie

    einrichten(string name){...}
    

    aus der Klasse

    Abteilung
    

    .
    Diese Methode ist dafür zuständig beim Anlegen eines Neuen Abteilungsobjektes mittels einer liste von Abteilungen zu überprüfen ob der Abteilungsname schon vergeben wurde.
    Wenn der Name noch frei ist liefert die Methode ein neues Objekt vom Typ Abteilung zurück. Ist der Name schon belegt, soll es mir (in der JAVA Version) NULL zurückgeben.
    In der main Methode möchte ich prüfen können ob eine neues Objekt erzeugt wurde.
    Wie kann ich das simple in C++ umsetzten (ohne Exceptions o.Ä.)?

    Ich bin bisher noch auf keinen grünen Zweig gekommen. ICh hoffe hier Hilfe zu bekommen.

    Danke im Voraus
    Weiß der Geier



  • hoffe, ich hab dich richtig verstanden...

    Abteilung* a=Abteilung::einrichten("hallo welt");
    if(a){
        a->doSth();
    }
    


  • void foo() {
      try {
        Abteilung a=Abteilung::einrichten("Moppelkotze");
      }
      catch(abteilung_bereitz_alloziert &a) {
        return;
      }
      a.mache_was_mit_dieser_abteilung();
    }
    


  • ne, exceptions sind hier sicher falsch, da man ja von vornherein damit rechnen muss, dass die abteilung nicht existiert. so hat ers ja auch gesagt, wenn ich ihn recht verstanden hab...



  • Machs einfach genau, wie in Java.



  • otze schrieb:

    hoffe, ich hab dich richtig verstanden...

    Abteilung* a=Abteilung::einrichten("hallo welt");
    if(a){
        a->doSth();
    }
    

    Genau so soll die Geschichte aussehen. Nur wie kann ich einen definierten Wert zurückgeben auf den ich in der ich in etwa wie folgt prüfen kann

    if(a != NULL)
    

    void foo() {
    try {
    Abteilung a=Abteilung::einrichten("Moppelkotze");
    }
    catch(abteilung_bereitz_alloziert &a) {
    return;
    }
    a.mache_was_mit_dieser_abteilung();
    }

    Genau so habe ich das jetzt auch gelößt halte es aber nicht für sehr sauber, da man mit Exceptions nicht programmieren sollte und ich hier ja davon ausgehe, dass eine fliegt.

    Wäre schön wenn mir jemand weiterhelfen kann.

    Gruß
    Weiß der Geier



  • Helium schrieb:

    Machs einfach genau, wie in Java.

    Das hab ich auch schon probiertt, dann bricht das ganze bei der Zuweisung des Rückgabewertes an die Variable zusammen.



  • Weiß der Geier schrieb:

    Das hab ich auch schon probiertt, dann bricht das ganze bei der Zuweisung des Rückgabewertes an die Variable zusammen.

    musst du zeiger nehmen - in Java sind ja alle Objekte Zeiger...


Anmelden zum Antworten