c++ practice patterns