The automatic decoration flag
By default, Objecteering C++ Developer automatically deduces C++ decorations for all model elements. However, in certain cases, deduced decorations may not correspond to what you actually intended. For example, you may want to override an externally defined virtual function, whose prototype does not correspond to that deduced by Objecteering C++ Developer.
Objecteering C++ Developer lets you mark the model elements to be avoided by the automatic deduction procedure. For this, the "C++" tab of the auxiliary window contains the "Automatic Decoration" tickbox (Figure 16).

Figure 16. The "Automatic Decoration" tickbox in the "C++" tab of the auxiliary window
By default, the automatic decoration flag is always on.
By switching off the flag, you indicate that the selected element should not be taken into account in the automatic deduction process. In this case, Objecteering C++ Developer only takes in account your decorations, and does not create new ones. To help you, previously deduced decorations remain, so that you can use them as a basis.
By switching on the flag, you indicate that the selected element is to be taken into account during the automatic deduction process. In this case, any decorations you have previously created are removed, and Objecteering C++ Developer deduces new decorations according to the rules defined.
If you change certain properties of the model element, such as the collection or pointer type, the automatic decoration flag is switched off automatically, in order to make Objecteering C++ Developer use the modified properties, instead of deducing the collection type or storage type from UML model semantics.
We will provide an example of how to use the auto decoration flag later in this chapter.