Identifiers have scope, objects have a storage class, and variables have both. In this chapter, we discuss the difference between declarations and definitions and how to determine the scope of identifiers and the storage class of objects.
Any identifier must be declared or defined before it is used. Declaring a name means telling the compiler what type to associate with that name.
Defining an object, or variable, means allocating space and (optionally) assigning an initial value. For example,
double x, y, z;char* p;int i = 0;QString message("Hello");
Defining a function means completely describing its behavior in a block of C++ statements. For example,
int max(int a, int b) ...