chapter 8b (C++)