IBM Content Manager, Versión 8.5      Soporta:  Oracle, DB2, C++, Java

Destrucción de DKAny

Puesto que DKAny puede albergar una referencia a objeto pero no gestiona memoria correspondiente a los tipos de referencia a objetos, debe gestionar la memoria correspondiente a estos tipos.

El ejemplo siguiente gestiona la memoria correspondiente a un objeto DKAny:

Ejemplo: C++

DKDDO* ddo = new DKDDO;                    // crea un DKDDO en el
                                                //almacenamiento dinámico
DKAny anyA((dkDataObjectBase*)ddo);
DKAny* anyB = new DKAny(anyA);                 // crea anyB en el
                                               // almacenamiento dinámico
                                     // anyA y anyB contienen una
                                     // referencia al mismo ddo
…
delete anyB;                                   // suprime anyB, no se suprime
                                               // el ddo
if (anyA.typeCode() == DKAny::tc_dobase)
    delete ((dkDataObjectBase*) anyA.value()); // suprime el ddo 

La última sentencia delete se debe ejecutar antes de salir del ámbito; de lo contrario anyA se suprime, dejando el DDO como una fuga de memoria.



Comentarios

Última actualización: Diciembre de 2013
dcmap021.htm

© Copyright IBM Corp. 2013.