Nicht aufgelöstes externes Symbol...



  • Was meinst du damit ?



  • Wozu soll deine Create() Funktion da sein, und warum lässt sich das nicht in den Konstruktor verlagern?



  • und warum gibst du da einen Pointer zurück? du rufst doch hoffentlich irgendwo auch delete auf? Oder hast du irgendwo ein statisches/globales Objekt?

    Wie sieht denn deine Create-Methode aus?



  • @cooky Ja gute idee kann ich eig. machen

    daddy_felix schrieb:

    und warum gibst du da einen Pointer zurück? du rufst doch hoffentlich irgendwo auch delete auf? Oder hast du irgendwo ein statisches/globales Objekt?
    Wie sieht denn deine Create-Methode aus?

    Pointer deswegen http://en.wikipedia.org/wiki/Abstract_factory_pattern
    Create-Methode ist leer wie du meinem ersten post entnehmen kannst



  • die Methode kann nicht leer sein, weil sie einen Rückgabetyp hat. Bitte poste die Methode so, wie du sie in deinem Code stehen hast.

    Ich bin mir auch nciht sicher, ob du das Pattern so richtig verstanden hast. So, wie du es momentan hast, wird es nicht funktionieren. Du brauchst mindestens noch ein Argument für die Create-Methode - oder alternativ unterschiedliche Create-Methoden (so mache ich es meistens). Und dann würde ich auch keinen raw Pointer zur+ckgeben, sondern einen shared_ptr.

    Aber das ist ein anderes Thema...



  • Ich hab noch nicht richtig angefangen mit dem was ich da machen will, ich frag jetzt gleich am Anfang um später nicht alles neu/korregieren zu müssen.

    Die Create Funktion könnte so aussehen ?!

    Device* Device::Create(string sClass) {
        if ( sClass == "Gui" ) return new Gui();
        return NULL;
    }
    


  • was heißt "könnte"? Gibt es irgendwo eine solche Funktion oder nicht?



  • Ja die gibt es aber nur mit dem return NULL; drinnen



  • poste doch bitte mal den *vollständigen* Code, also mit allen beteiligten Dateien. Das dürfte bei deienm Mini-Beispiel ja recht übersichtlich sein.

    Das "nichtaufgelöste externe Symbol" bedeutet, dass er die Definition der Methode nicht findet. Da ist es schon wichtig, wie und wo du diese Methode definiert hast.



  • Was soll das überhaupt werden? Was willst du erreichen? Und wozu bitte brauchst du hier das Factory Pattern? oO



  • ehm es läuft doch schon längst?Ich glaube das ist ein Missverständnis.
    @cooky Lesen,ausprobieren und lernen



  • oh sorry... ich dachte irgendwie, da wären noch mehr Fehler. Dann bin ich jetzt ruhig 😉



  • 7xCore schrieb:

    Lesen,ausprobieren und lernen

    Du willst also einfach nur das Pattern implementieren ohne irgendeinen Zusammenhang?



  • cooky451 schrieb:

    7xCore schrieb:

    Lesen,ausprobieren und lernen

    Du willst also einfach nur das Pattern implementieren ohne irgendeinen Zusammenhang?

    Ehm schon?Ist doch normal, das man erstmal was neues lernt und danach einsetzt?Oder machst du das anders ?



  • 7xCore schrieb:

    Ehm schon?Ist doch normal, das man erstmal was neues lernt und danach einsetzt?Oder machst du das anders ?

    Ja, total. Ich lerne nur das was ich brauche. Wenn ich ein neues Pattern sehe, nehme ich es war, merke mir dass es so ein Konzept gibt, und wenn ich mal ein Problem habe das ich damit lösen könnte, lese ich mir alle Artikel dazu durch die ich finden kann und versuche den für die Lösung optimalen Weg zu gehen.

    Bei neuen Sprachfeatures mag das etwas anders sein, aber die meisten Muster sind ja doch recht einfach, sodass das Implementieren ohne Kontext eigentlich einem Abschreiben gleichkommt, das einem keinerlei neue Erkenntnisse bringt.



  • cooky451 schrieb:

    7xCore schrieb:

    Ehm schon?Ist doch normal, das man erstmal was neues lernt und danach einsetzt?Oder machst du das anders ?

    Ja, total. Ich lerne nur das was ich brauche. Wenn ich ein neues Pattern sehe, nehme ich es war, merke mir dass es so ein Konzept gibt, und wenn ich mal ein Problem habe das ich damit lösen könnte, lese ich mir alle Artikel dazu durch die ich finden kann und versuche den für die Lösung optimalen Weg zu gehen.

    Bei neuen Sprachfeatures mag das etwas anders sein, aber die meisten Muster sind ja doch recht einfach, sodass das Implementieren ohne Kontext eigentlich einem Abschreiben gleichkommt, das einem keinerlei neue Erkenntnisse bringt.

    Stimm ich dir 100% zu 👍


Anmelden zum Antworten