An evaluation of expressions on the contrary does not change the status
of the program or the system. This is the reason, why functional programming
is preferred by many computer scientists because it leads to safer and more
robust programs, which on top of that are easier to rigorously verify on
a mathematical basis.
The decision which programming style to apply in a specific case has to be made by the programmer. A++ supports all three paradigms. In the following three examples for object-oriented programming all three programming styles are used.
The imperative programming style is unavoidable in object-oriented programming because an object has specific state which has to be maintained executing assignment statements.