Создание массива объектов С++, которые имеют конструктор с параметрами

Пахомов Сергей | 2016-08-30

Наткнулся в книге "Структуры и алгоритмы обработки данных: объектно-ориентированный подход и реализация на C++. Кубенский А.А." в примерах кода на такую строчку

    
    KeyList<Key> * lists = new KeyList<Key> [listNumber]  (&buffer);
Динамически создается массив объектов из шаблона. Объекты имеют конструктор с параметрами.
MS VS 2016 и Code Blocks 16 выдают в этой строчке ошибку.
Например error: parenthesized initializer in array new [-fpermissive]

Решение такое. Нужно выделить память под массив объектов. Далее вручную создать и инициализировать каждый объект.

    KeyList<Key> * lists = (KeyList<Key>* )operator new( sizeof( KeyList<Key> ) * listNumber) ;
    for(int i=0; i<listNumber; ++i )
    	{
    		new( &lists[ i ] ) KeyList<Key>( &buffer);
    	}

Шпаргалка по основам IP4

Пахомов Сергей | 2014-04-22

Классовая адресация

Маска - 32-битовое число, обычно записываемое в десятичном формате с разделительными точками.
Она нужна для того, чтобы указатьструктуру IP-адреса, или кратко говоря, маска задает
размер узловой части IP-адреса. Узловая часть в адресе задается двоичными 0 в маске.
В первой части маски содержатся двоичные 1, они задают сетевую часть адреса (если нет подсетей),
или сетевую и подсетевую часть адреса (если есть подсети).

Читать дальше →