Как вы отбрасываете константность, когда функция получает ссылку на объект (и получает доступ к неконстантным методам)?

У меня есть резервная копия данных, которую я хотел бы защитить, поэтому я сделал это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'

Ответы на вопрос(3)

Ваш ответ на вопрос