[C++] Neues Objekt mit Variablen Namen erstellen

Diskutiere [C++] Neues Objekt mit Variablen Namen erstellen im Developer Network Forum im Bereich Hardware & Software Forum; Moin leute, ich versuche gerade etwas c++ zu lernen und hätte da mal eine Frage... Wie kann ich es machen, dass ich eine unbestimmte Anzahl von...
  • [C++] Neues Objekt mit Variablen Namen erstellen Beitrag #1
P

PyroDragonfly

Bekanntes Mitglied
Dabei seit
24.09.2009
Beiträge
410
Reaktionspunkte
0
Moin leute,

ich versuche gerade etwas c++ zu lernen und hätte da mal eine Frage...

Wie kann ich es machen, dass ich eine unbestimmte Anzahl von Objekten erstelle?

Normalerweiße rufe ich ja einen Konstruktor auf und sag ihm, dass er ein Objekt mit einem festen namen erstellen soll. Z.B. beim angehängten Codebsp: "Buch roman (titel, autor, buchnr)" wird ein Objekt roman erstellt.. wie kann ich jetzt den Objektnamen durch eine Variable ersetzen, dass der user quasi selbst bestimmen kann, wie das objekt heißen soll? z.B. der user gibt "roman" ein und das objekt roman wird dann erstellt.. geht sowas?

Hoffe das war einigermaßen verständlich formuliert^^

mfg
pyro

Code:
#include <iostream>

using namespace std;

class Buch
{
      private:
              string itstitel;
              string itsautor;
              int itsbuchnr;
      
      public:
              Buch::Buch(string titel, string autor, int buchnr);
              Buch::~Buch();
              string GetTitel();
              void SetTitel(string);
              string GetAutor();
              void SetAutor(string);
              int GetBuchnr();
              void SetBuchnr(int);
};

Buch::Buch(string titel, string autor, int buchnr)
{
     itstitel = titel;
     itsautor = autor;
     itsbuchnr = buchnr;
}

Buch::~Buch()
{
}

string Buch::GetTitel()
{
       return itstitel;       
}

void Buch::SetTitel(string titel)
{
     itstitel = titel;
}

string Buch::GetAutor()
{
       return itsautor;
}

void Buch::SetAutor(string autor)
{
      itsautor = autor;
}

int Buch::GetBuchnr()
{
    return itsbuchnr;
}

void Buch::SetBuchnr(int buchnr)
{
     itsbuchnr = buchnr;
}


int main(void)
{
    string titel, autor;
    int buchnr = 0;
    
    cout << endl << "Geben Sie den Buchtitel an: ";
    getline(cin, titel);
    cout << endl << "Geben Sie den Buchautor an: ";
    getline(cin, autor);
    cout << endl;
    buchnr++;    

    Buch roman (titel, autor, buchnr);
    
    cout << endl << "Buchtitel: " << roman.titel << endl << "Buchautor: " << roman.autor << endl << "BuchNr: " << roman.buchnr << endl;
    
    
    
    system("pause");   
    return 0;
}

//EDIT: ich hab grad gemerkt dass ich in der ausgabe einen fehler gemacht habe.. also bitte nur auf das gegebene problem eingehen und nicht auf diesen ausgabefehler^^
 
Zuletzt bearbeitet:
  • [C++] Neues Objekt mit Variablen Namen erstellen Beitrag #2
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Das Objekt ist ja im Prinzip eine Variable, und die hat einen fixen Namen innerhalb des Programms. Aber du kannst natürlich z.B. ein Array erstellen, das mehrere Objekte enthält. Du kannst auch z.B. ein Array von Pointern auf solche Objekte verwenden und diese dynamisch mit dem new-Schlüsselwort erstellen. Allerdings musst du dich dann selber darum kümmern, alle mit new erstellten Objekte wieder mit delete zu löschen.
 
  • [C++] Neues Objekt mit Variablen Namen erstellen Beitrag #3
P

PyroDragonfly

Bekanntes Mitglied
Dabei seit
24.09.2009
Beiträge
410
Reaktionspunkte
0
aber ich kann jetzt nicht sagen, dass der nutzer einen Namen für das Objekt eingeben soll, der dann wirklich als objektname verwendet wird?
 
  • [C++] Neues Objekt mit Variablen Namen erstellen Beitrag #4
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
aber ich kann jetzt nicht sagen, dass der nutzer einen Namen für das Objekt eingeben soll, der dann wirklich als objektname verwendet wird?
Nein. Aber wozu soll das gut sein?
Wenn der Benutzer dem Objekt einen Namen geben können soll, dann fügst Du am besten der Klasse eine weitere Eigenschaft "Name" hinzu (neben Titel, Autor und Nr).
 
  • [C++] Neues Objekt mit Variablen Namen erstellen Beitrag #5
P

PyroDragonfly

Bekanntes Mitglied
Dabei seit
24.09.2009
Beiträge
410
Reaktionspunkte
0
ja, aber dann muss ich trotzdem vorher bestimmen im code, wie viele objekte erstellt werden,oder?
 
  • [C++] Neues Objekt mit Variablen Namen erstellen Beitrag #6
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Du kannst ja den Benutzer fragen, wieviele Bücher er eingeben möchte, oder er kann soviele Bücher eingeben, bis er eine leere Nr. eingibt.

Nach jeder Eingabe erzeugst Du ein Objekt (per new oder auf dem Stack) und packst es in ein dyn. Array (z.B. vector<Buch> buecher;).
 
Thema:

[C++] Neues Objekt mit Variablen Namen erstellen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben