Creating redefined operations

An operation in a class or capsule can redefine (a.k.a. override) an operation with the same signature that is inherited from another class or capsule. This works the same as when a C++ function in a derived class overrides another function with the same signature in a base class. It's not required to set-up an explicit redefinition link between the operations in the model; the generated C++ code will be correct anyway. However, setting up such an explicit redefinition link has the benefit that you will see that an operation redefines another operation on its General property page. From there you can also navigate to the inherited operation that it redefines.

It's possible to manually set-up a redefinition link between two operations, but usually it's better to do this automatically from the Operations property page by means of the "Redefine Operation" context menu command. In that case the "override" property of the redefining operation is also automatically set-up, which ensures that the corresponding C++ function will be marked with the override keyword. That command will also warn you if the operation you want to redefine has the "final" property set.

Using the "Redefine Operation" command to redefine an inherited operation