Как вы отбрасываете константность, когда функция получает ссылку на объект (и получает доступ к неконстантным методам)?
У меня есть резервная копия данных, которую я хотел бы защитить, поэтому я сделал этоconst
, Мне нужно нарушить этоconst
В двух случаях, один раз, чтобы сохранить в нем первичные данные:
fgBlocks.CopyInto((BlkArray&)backUpCopy);
w.r.t.
result CopyInto(BlkArray &replica) const {/**/}
и снова, когда я звонюRemoveAll()
на нем, который является неконстантным методом:
((BlkArray)backUpCopy).RemoveAll(true);
Первый актерский состав (показан выше,(BlkArray&)
) верный? Это тот аспект косвенности, который я не использовал до сих пор. Затем я снова добавлю еще один неиспользованный аспект - отторжениеconst
Для вызова методов объекта, которые компилятор не принимает, как показано выше.
Члены объявлены так:
BlkArray fgBlocks;
const BlkArray backUpCopy;
Я пытаюсь расширить решение Корреа, поэтому:
BlkArray *pBUCopy = (BlkArray *)&backUpCopy;
fgBlocks.CopyInto(*pBUCopy);
Единственная проблема сейчас заключается в сбое компилятора из-за
неинициализированный член 'MyClass :: backUpCopy' с типом 'const' 'const BlockArray'