Data Structures via C++: Objects by Evolution