Everything is possible.
COMMON MAXIM
The top-down design strategy discussed in Chapter 4 is an effective way to design an algorithm for a program. You divide the program’s task into subtasks and then implement the algorithms for these subtasks as functions. Thus far, we have seen how to define functions that start with the values of some arguments and return a single value as the result of the function call. A subtask that computes a single value is a very important kind of subtask, but it is not the only kind. In this chapter we will complete our description of C++ functions and present techniques for designing functions that perform other kinds of subtasks.
You should read Chapters 2 through 4 before reading this chapter.