Ich möchte einen Vektor von Zeigern erstellen, die jeweils auf ihr eigenes Martian-Objekt zeigen, aber ich kann nicht herausfinden, wie man es anordnet. Ich bin immer noch den FehlerWie kann ich einen Zeigervektor erzeugen, der auf ein dynamisch zugewiesenes Objekt zeigt?
Nicht konstante lvalue Referenz ‚Vektor‘ geben binden kann nicht auf einen Wert von nicht verwandten Typ ‚martianDatabase‘
aber der Fehler ändert sich ständig mit jedem i Änderung vornehmen . Ich habe mir in den letzten zwei Tagen eine Menge Tutorials angeschaut, um das herauszufinden, aber ich stecke immer noch fest.
struct Martian
{
Martian(string fname, string lname, string ssid);
string fname, lname, ssid;
~Martian();
};
class martianDatabase
{
vector<Martian*> database;
martianDatabase();
void addMartian(vector <Martian*> &database, int &iterator, string f, string l, string id);
int iterator = 0;
};
Martian::Martian(string f, string l, string id)
{
fname = f;
lname = l;
ssid = id;
}
void martianDatabase::addMartian(vector <Martian*> &database, int &i, string f, string l, string id)
{
Martian* m = new Martian(f, l, id);
database[i].push_back(m);
i++;
}
Dieses 'Mars :: Mars (String f, String l, String id) 'wäre besser als' Mars :: Mars (const String & f, const String & l, const String & id) '- Speichert Kopieren –
Auch die Verwendung von Smart Pointers könnte Ihr Leben zu einem etwas einfacher –
danke, geändert, aber das mein Dilemma bleibt – Ammar