En la transformación en C++, la expresión "operaciones estándares" hace referencia, colectivamente, a los constructores, los constructores de copia, los destructores y los operadores de asignación.
Es posible controlar la generación automática de operaciones estándares mediante las propiedades del plug-in Eclipse. Para acceder a las propiedades, pulse en Ventana > Preferencias. Para acceder a las propiedades para la transformación en C++, amplíe Modelado, amplíe Transformaciones y pulse en Transformación de UML en C++.
La transformaciones genera los constructores y los constructores de copia por omisión.
Para obtener un mayor control de la forma en que la transformación genera las operaciones estándares pueden añadirse operaciones con determinados estereotipos al modelo UML. Si se crea una operación bajo una clase y se le asigna uno de los estereotipos de operaciones estándares, la transformación genera la operación estándar en lugar de la operación especificada.
Pueden utilizarse los estereotipos siguientes para generar operaciones estándares:
· Constructor: Puede utilizarse el estereotipo cpp_constructor para especificar si el constructor es explícito o está incorporado. La transformación asigna valores UML por omisión a los atributos de clase en los constructores generados.
· Constructor de copia: El estereotipo cpp_copy_constructor puede utilizarse para especificar si un constructor de copia es explícito o está incorporado. La transformación asigna valores UML por omisión a los atributos de clase en los constructores de copia generados.
· Destructor: El estereotipo cpp_destructor puede utilizarse para especificar si el destructor es virtual o está incorporado.
· Asignación: El estereotipo cpp_asignment puede utilizarse para especificar si una operación de asignación está incorporado. La transformación asigna valores a los atributos de clase en base a la clase asignada en los operados de asignación generados.
La transformación aplica la visibilidad de la operación UML a las operaciones estándares generadas pero no tiene en cuenta el nombre ni los parámetros de la operación UML.
Los constructores tienen cadenas de caracteres de inicialización para los atributos que tengan especificados valores por omisión. Los constructores de copia crean atributos en base a los atributos que se estén duplicando. Los cuerpos de los operadores de asignación generados contienen las instrucciones de asignación correspondientes a los atributos de clase de los mismos.
Si una clase especifica un tipo de operación estándar en concreto, las propiedades de la misma sobrescriben las propiedades por omisión de la transformación.
La transformación no genera operaciones estándares para las uniones, a menos que se añadan de forma explícita a un modelo UML.