Designing and Coding Reusable C++