Formal specification of C++ class interfaces for software reuse