Constructors
A member function with the same name as its class is a constructor function. Constructors cannot return values, even if they have return statements. Specifying a constructor with a return type is an error, as is taking the address of a constructor.
If a class has a constructor, each object of that type is initialized with the constructor prior to use in a program. (For more information about initialization, see Initialization Using Special Member Functions.)
Constructors are called at the point an object is created. Objects are created as:
-
Global (file-scoped or externally linked) objects.
-
Local objects, within a function or smaller enclosing block.
-
Dynamic objects, using the new operator. The new operator allocates an object on the program heap or “free store.”
-
Temporary objects created by explicitly calling a constructor. (For more information, see Temporary Objects.)
-
Temporary objects created implicitly by the compiler. (For more information, see Temporary Objects.)
-
Data members of another class. Creating objects of class type, where the class type is composed of other class-type variables, causes each object in the class to be created.
-
Base class subobject of a class. Creating objects of derived class type causes the base class components to be created.