Share via


Defining Class Types

Class types are defined using class-specifiers. Class types can be declared using elaborated-type-specifiers as shown in Type Specifiers in Chapter 6.

Syntax

  • class-specifier :
    class-head { member-listopt }
  • class-head :
    class-key imodelopt identifieropt base-specopt
    class-key imodelopt class-nameopt base-specopt
  • class-key :
    class
    struct
    union
  • imodel :
    __declspec

Class names are introduced as identifiers immediately after the compiler processes them (before entry into the class body); they can be used to declare class members. This allows declaration of self-referential data structures, such as the following:

class Tree
{
public:
    void *Data;
    Tree *Left;
    Tree *Right;
};