problem mit vector iterator
-
hola
hab ne klasse in der ich einen vector fuer dateidaten habe.
nun hab ich ne memberfunktion die mir zwei vectoren zusammen in einen kopieren soll. aber da bekomm ich immer ne fehlermeldung:
[C++ Warnung] Directory.cpp(111): W8037 Nicht-konstante Funktion Directory::list_start() für konstantes Objekt aufgerufenunsigned int Directory::AddFiles(const Directory &t_dir) { std::vector<file_data>::iterator it; it = t_dir.files.begin(); // (1) while(it != t_dir.files.end()) { AddFile(it->filename, it->data); } return files.size(); }in zeile (1) ins das problem.
kann mir da jeamnd weiter helfen ?cermy
Meep Meep
-
Für mich siehts eher so aus, als ob das Problem schon bei der Parameterübergabe auftritt. Überprüf doch mal, ob list_start() nicht von einem Konstruktor oder Konvertierungsoperator aufgerufen wird.
-
t_dir ist const, und wird dir damit wohl auch nur einen const_iterator geben, und keinen normalen Iterator.
-
re
devil81 schrieb:
t_dir ist const, und wird dir damit wohl auch nur einen const_iterator geben, und keinen normalen Iterator.
wie meinst das ? ich kann doch einen iterator erstellen. ging ja sonst auch.
wo bei das eigendlich hinfaellig ist. hab jetzt die klasse so umgebaut das ich wieder mit indices arbeiten kann. irgendwie hab ich sowieso noch ne nen vorteil bei iteratoren gesehen, ausser das sie mir probleme bereit.danke troetzdem
Meep Meep
-
std::vector<file_data>::const_iterator it;