A function object is an instance of a class that defines the function call operator (the parenthesis operator). Since it is an instance of a class, a function object can remember state between successive invocations, or can have a constructor to set state.