Инициализиране на динамичен масив от обекти

За да инициализираме обектите дефинираме в класа една статична променлива и една статична функция която да я променя. Конструктора по подразбиране инициализира член променливата "i" на класа със стойноста на статик променливата "valdefault". Непосредственно преди да заделим масива указваме стойноста с която ще бъдат инициализирани обектите чрез статичната функция SetDefault.

class TEST
{
    int i;
    static int valdefault;
public:
    static void SetDefault(int d) 
    { 
        valdefault = d; 
    }
    TEST():i(valdefault) 
    {
    }
    TEST(int value) : i(value) 
    { 
 
    }
    void SetVal(int value) 
    { 
        i = value;   
    }
    int  GetVal()       
    { 
        return i; 
    }
};
 
int TEST::valdefault = 0;
 
main()
{
    int i;
 
    TEST::SetDefault(234);
    TEST* array1 = new TEST[5];
 
    TEST::SetDefault(432);
    TEST* array2 = new VAL[5];
 
    return 0;
}