Klassen- oder globale Funktion?



  • Hallo,

    Folgende Situation:

    Eine Funktion enthält mehrere Vectoren der Klasse Gebäude. Bei Benutzereingabe soll der selektierte Vector, z.B Lagerhaus um eins vergrößert werden. Der Übersichtlichkeithalber soll dies eine eigene Funktion werden.

    Meine Frage(n):

    Ist es sinnvoller dazu eine Methode der klasse Gebäude zu entwickeln oder eine globale Funktion?

    #include <iostream>
    #include <vector>
    
    class Gebäude
    {
    int nr, laenge, breite ;
    string bezeichnung ;
    };
    
    class Lagerhaus : public Gebäude
    {
    int etc, pp ;
    
    //diverses
    }
    
    void Funktion_a()
    {
    vector <Lagerhaus> lagervector ;
    
    NeuesGebäude(lagervector) ; //entweder
    Lagerhaus.Neu ;
    
    //diverses
    }
    
    void NeuesGebäude(string ziel)           //Entweder
    {
    ziel.push_back(Lagerhaus());
    }
    
    void Gebäude::Neu()           // Oder
    {
    ziel.push_back(Lagerhaus());  //Wie trage ich hier den korrekten Vector ein?
    }
    

  • Mod

    wabbul schrieb:

    Eine Funktion enthält mehrere Vectoren der Klasse Gebäude. Bei Benutzereingabe soll der selektierte Vector, z.B Lagerhaus um eins vergrößert werden. Der Übersichtlichkeithalber soll dies eine eigene Funktion werden.

    Wenn du der Übersicht halber einen einzelnen Funktionsaufruf durch einen anderen ersetzt, dann stimmt da irgendwas nicht.



    1. class Gebäude solltest du dringend ändern!

    void NeuesGebäude(string ziel)           //Entweder
    {
    ziel.push_back(Lagerhaus());
    }
    

    wieso auf einmal string und nicht std::vector<lagerhaus> &ziel ?

    überhaupt sieht dein problem so aus, als ob du mal nach "polymorphie" suchen solltest...

    bb


Anmelden zum Antworten