¿Cómo desecha la constante cuando la función toma una referencia al objeto (y accede a métodos que no son constantes)?
Tengo una copia de seguridad de los datos que me gustaría proteger, así que lo hiceconst
. Necesito violar esaconst
ness en dos ocasiones, una vez para almacenar datos vírgenes:
fgBlocks.CopyInto((BlkArray&)backUpCopy);
w.r.t.
result CopyInto(BlkArray &replica) const {/**/}
y de nuevo cuando llamo aRemoveAll()
en él, que es un método no constante:
((BlkArray)backUpCopy).RemoveAll(true);
Es el primer elenco (mostrado arriba,(BlkArray&)
) correcto? Es el único aspecto de la indirección al que no he lanzado antes. Por otra parte, agregaré otro aspecto no utilizado, el de desecharconst
ness para llamar a los métodos de un objeto, que el compilador no acepta como se muestra arriba.
Los miembros se declaran así:
BlkArray fgBlocks;
const BlkArray backUpCopy;
Estoy tratando de extender la solución de Correa, así que:
BlkArray *pBUCopy = (BlkArray *)&backUpCopy;
fgBlocks.CopyInto(*pBUCopy);
l único problema de @ ahora es que el compilador falla debido a
uninitialized member 'MyClass :: backUpCopy' con 'const' tipo 'const BlockArray'