Objekt über Zeiger ist ein anders, als dasselbe in Liste gespeicherte



  • @wernersbachr sagte in Objekt über Zeiger ist ein anders, als dasselbe in Liste gespeicherte:

    Ich weiß ehrlich gesagt nicht, auf welches Ergebnis ihr genau hinauswollt 🤓
    Würdet ihr die Zeiger oder die Objekte in einem vector verwalten?

    edit: Macht es Sinn, wie ursprünglich zu realisieren, nur anstatt eine Adresse eine Referenz zurückzugeben?

    Zunächst musst du dir über deine Anforderungen klar werden.

    Willst du Verweise auf NeuronenObjekte irgendwo anders noch speichern? Also braucht eine andere Klasse Zugriff auf das NeuronenArsenal?

    Wie bildest du die Synapsen/Connections ab?

    Wenn du das z.B. so machst:

    class Synapse
    {
    // ... bla bla konstruktoren
    private:
        std::shared_ptr<WorkingNeuron> SenderNeuron, ReceiverNeuron;
        double SynapseWeight = 0, NMDA = 0, AMPA = 0;
    }
    

    dann hast du eine andere Klasse, die in irgendeiner Form Verweise auf zwei Neuronen hat.
    D.h. du brauchst außerhalb der NeuralNetwork-Klasse eine Möglichkeit direkt auf Neuronen zu verweisen. Entweder indirekt über eine ID ( Index im Vector in NeuralNetwork ) oder direkt über Referenzen oder shared_ptr.

    Damit entfällt dann z.B. die std::unique_ptr-Lösung.
    Wenn die Menge an Neuronen konstant ist, dann geht das mit Referenzen am schönsten, ansonsten mit shared_ptr.

    Sobald du dir über deine Anforderungen klar geworden bist, kristallisiert sich in aller Regel eine "beste Lösung" raus.


Anmelden zum Antworten