Chapter 20: Scope and Storage Class

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.

20.1 Declarations and Definitions

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) ...

Get Introduction to Design Patterns in C++ with Qt, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.