Copiar estructuras

Las estructuras del mismo tipo pueden copiarse completamente entre sí mediante el operador de asignación '='. Vamos a demostrar esta regla con un ejemplo de la estructura Result. Obtenemos la primera instancia de r a partir de la función calculate.

void OnStart()
{
   ...
   Result r = calculate(s);
   r.print();
   // will output to the log:
   // 0.5 1 ok
   // 1.00000 2.00000 3.00000
   ...
   Result r2;
   r2 = r;
   r2.print();
   // will output to the log the same values:
   // 0.5 1 ok
   // 1.00000 2.00000 3.00000
}

A continuación, se creó adicionalmente la variable Result r2 y se duplicó en ella el contenido de la variable r , todos los campos al mismo tiempo. La exactitud de la operación puede verificarse mediante la salida al registro utilizando el método print (las líneas se indican en los comentarios).

Hay que tener en cuenta que definir dos tipos de estructuras con el mismo conjunto de campos no hace que los dos tipos sean iguales. No es posible asignar por completo una estructura a otra; en estos casos sólo se permite la asignación miembro a miembro.

Un poco más adelante hablaremos de la herencia de estructuras, que le ofrecerá más opciones para copiar. El hecho es que la copia no sólo funciona entre estructuras del mismo tipo, sino también entre tipos relacionados. No obstante, existen matices importantes, que abordaremos en la sección Disposición y herencia de estructuras.