Ich habe eine Klasse mit einem std::map
als Container verwendet. Ich möchte eine Funktion hinzufügen, um die Karte zwischen zwei Objekten zu kopieren. Da die Karte als privates Mitglied der Klasse deklariert wurde, benötige ich eine Friend-Funktion. Hier ist mein Code:Fehler beim Kopieren std :: map in einer Klasse
class Data;
void copyData(Data &, Data &);
class Data
{
private:
map<int, int> _data;
public:
friend void copyData(Data &, Data&);
};
void copyData(Data &a, Data &b)
{
std::copy(a._data.begin(), a._data.end(), b._data.begin());
}
main()
{
// initialization here
Data A, B;
copyData(A, B);
}
Aber es gibt viele Warnungen beim Kompilieren mit Mingw32. Wie mache ich das richtig?
Gibt es einen Grund sind Sie nicht nur eine Kopie Konstruktor? Und das Übergeben von b nach Wert in copyData macht wenig Sinn. – Corbin
Und wir sollten nicht raten müssen, welche Warnungen Ihr Compiler Ihnen gegeben hat. Stellen Sie sie zur Verfügung. Auch Ihr Titel sagt Warnung, Ihre Beiträge sagt Fehler. Welches ist es? –
Ihre Kartendeklaration hat keinen Typ !! – IndieProgrammer