Initializing Objects Created with the new Operator

You can initialize objects created with the new operator in several ways. For nonclass objects, or for class objects without constructors, a new initializer expression can be provided in a new expression by specifying (expression) or (). For example:

double* pi = new double(3.1415926);
int* score = new int(89);
float* unknown = new float();

If a class has a constructor, the new initializer must be provided when any object of that class is allocated. The arguments of the new initializer must match the arguments of a class constructor, unless the class has a default constructor.

You cannot specify an initializer for arrays. You can initialize an array of class objects only if the class has a default constructor. The constructor is called to initialize each array element (class object).

Initialization using the new initializer is performed only if new successfully allocates storage.