A local class is declared within a function definition. The local class is in the scope of the enclosing function scope. Declarations in a local class can only use type names, enumerations, static variables from the enclosing scope, as well as external variables and functions.
Member functions of a local class have to be defined within their class definition. Member functions of a local class must be inline functions. Like all member functions, those defined within the scope of a local class do not need the keyword inline.
A local class cannot have static data members. In the
following example , an attempt to define a static member of a
local class causes an error :
void f()
{
class local
{
int f(); // error, local class has noninline
// member function
int g() {return 0;} // valid, inline member function
static int a; // error, static is not allowed for
// local class
int b; // valid, nonstatic variable
};
}
// . . .
An enclosing function has no special access to members of the local class .
![]()
Examples of Local Classes
Function Scope
Inline Member Functions
Inline Specifiers
Local Type Names