dynamisches erzeugen von Objekten



  • Hallo Leute,

    irgendwie fehlt mir der weitere Ansatz oder einfach die Erfahrung da ich gerade erst mit C++ angefangen habe.

    Zu meinem Problem oder Überlegung:

    Ich will dynamisch Objekte anlegen und zwar ohne STL-Befehle oder sonstige Verwaltungstemplates.
    Um genauer zu werden will ich verschiedene Konten anlegen wenn es gewünscht wird und dann mit diesen weiter arbeiten oder gegebenenfalls löschen. Mir fehlt gerade nur der Ansatz um Beispielsweise ein weitere Konto anzulegen und dann damit zu arbeiten....
    Die Idee ist es, wenn ich es will das neue Konten angelegt werden und diese dann einfach mit der Nummerierung hoch gehen.

    So mein Ansatz:
    Bank *Konto =new Bank;

    Gut wäre es wenn es dann nach Eingabe ob ein neues Konto gewünscht ist einfach hoch zählt:

    Bank *Konto =new Bank;
    Bank *Konto1 =new Bank;
    Bank *Konto2 =new Bank;

    Mein Versuch mit einer for- Schleife und einem Index zu arbeiten führe leider bei Visual Studio nicht weit, da er immer meinte das nichts deklariert ist.
    Ungefähr so:

    for (int i=4; i<=8; i++)
    Zinseszins *Konto =new Zinseszins[i];

    Mit statischen Objekt funktionier das auch alles wunderbar allerdings ist das nicht wirklich schön finde ich.

    Vielen dank schon mal im voraus und ja hab schon mal Google gefragt 😉



  • Sowas koennte man mit new[] erreichen.

    Konto* konten = new Konto[zahlAnKontenDieGewuenschtIst];
    

    Am Ende natuerlich wieder delete[] n.

    Und zum durchlaufen:

    for(size_t i = 0; i < zahlAnKontenDieGewuenschtIst; ++i)
    {
        //Mach was mit konten[i]
    }
    

    Aber warum willst du nicht die STL nutzen?



  • Danke für die Antwort, bei der Variante war ich mir nicht sicher ob auch jedes mal ein neues Objekt erzeugt wird. Hab mir zwar im Konstruktor eine Ausgabe gebaut "Konstruktor erzeugt", bloß kann ich mir nicht vorstellen warum jedes mal zwei Konstruktoren gerufen werden.

    Also habe ich dann bei:
    Konto konten = new Konto[2];*
    3 "konten Objekte"?

    Wollte es erstmal so versuchen und später dann auf die STL-Befehle ausweichen, da ich mir denke das man sie dann nur noch benutzt (ist ja scheinbar auch einfacher). Finde es bloß mal nicht schlecht es erst einmal anders zu versuchen 🙂



  • Jemand, der seine Bank Konto nennt. Wie verwirrend.
    Die Lösung, die ich vorschlagen würde:

    vector<Bank> konten;
    konten.push_back(Bank());
    for (unsingned int i = 0; i < konten.size(); i++)
        konten[i].tuWasMitBank();
    

    Da du die STL nicht benutzen willst musst du natürlich zuerst vector implementieren. Ist aber nicht schwer, da du nur ein Paar Funktionen brauchst und man lernt was bei.
    Btw. new Konto[2] gibt dir nur 2 Konten, nämlich Konto[0] und Konto[1].



  • Dann werde ich mal mein Glück versuchen, klingt ja vielversprechend. Danke



  • Warum willst du die STL nicht nutzen? Übungszweck? Vom Lehrer verboten? Hast du irgendwelche Bedenken wegen Performance?

    edit: ach, da stehts ja mittendrin. sorry, habs überlesen.



  • Wollte es erstmal so versuchen und später dann auf die STL-Befehle ausweichen, da ich mir denke das man sie dann nur noch benutzt (ist ja scheinbar auch einfacher). Finde es bloß mal nicht schlecht es erst einmal anders zu versuchen

    Man lernt ja auch auf einem F1 autofahren und steigt dann auf einen Polo um 😃

    Für die Spitzfindigen: ich meine das Handling, nicht die Geschwindigkeit.



  • Also habe ich dann bei:
    Konto* konten = new Konto[2];
    3 "konten Objekte"?

    Nein, du hast 2, weil da eine 2 steht.



  • ja STL-Befehle sind schon schöner/einfacher , hab das durch ein bisschen ausprobieren feststellen müssen 😉


Anmelden zum Antworten