У меня есть еще одна проблема, которую я не могу решить ... или найти на этом сайте ...
У меня есть объект (называемый DataObject) с картой, объявленной следующим образом:
std::map<size_t, DataElement*> dataElements;
Теперь у меня есть функция копирования (используется в конструкторе копирования):
void DataObject::copy(DataObject const &other) {
//here some code to clean up the old data in this object...
//copy all the elements:
size = other.getSize();
for(size_t i = 0; i < size; ++i) {
DataElement* dat = new DataElement(*other.dataElements[i]);
dataElements[i] = dat;
}
}
Это не компилируется, поскольку dataElements [i] невозможен для объекта const.Как сделать полную копию всех элементов на карте, принадлежащих константному объекту?
Я знаю, что функция find () возможна на константной карте, но тогда как мне добраться дофактический объект, который я хочу скопировать?