Object-oriented design extends code reuse beyond the sharing of common functions and header parameters. In small software projects this advantage is small, but in a large project, such as the GBT, the benefits can be considerable. However, a lot of early design analysis is required to uncover the common properties of apparently disparate parts of a system. It doesn't happen automatically with the adoption of an object-oriented language.
I have already mentioned a few areas of code reuse, or more importantly design reuse. Others include the error reporting message system, interprocess communication (RPC++ class), and the hardware sampling and monitor system.