Como você elimina a const'ness quando a função faz uma referência ao objeto (e acessa métodos não-const

Tenho uma cópia de segurança dos dados que gostaria de proteger, então fiz issoconst. Eu preciso violar issoconstness em duas ocasiões, uma vez para armazenar dados virgens nele:

fgBlocks.CopyInto((BlkArray&)backUpCopy);

w.r.t.

result CopyInto(BlkArray &replica) const {/**/}

e novamente quando ligo paraRemoveAll() nele, que é um método não-const:

((BlkArray)backUpCopy).RemoveAll(true);

É o primeiro elenco (mostrado acima,(BlkArray&)) correto? É o único aspecto do indireto para o qual não lancei antes. Mais uma vez, adicionarei outro aspecto não utilizado, o de rejeitarconstness por chamar os métodos de um objeto, que o compilador não está aceitando como mostrado acim

Os membros são declarados assim:

BlkArray fgBlocks;
const BlkArray backUpCopy;

Estou tentando estender a solução de Correa par

    BlkArray *pBUCopy = (BlkArray *)&backUpCopy;
    fgBlocks.CopyInto(*pBUCopy);

O único problema agora é que o compilador está falhando devido a

uninitialized member 'MyClass :: backUpCopy' com 'const' tipo 'const BlockArray'