Ball() x(0), y(0), r(0), vx(0), vy(0) {}
new Ball[n]
Создает n объектов, но конструктора по умолчанию (без параметров) у класса Ball нет. Обычно его генерирует компилятор сам, но только если вы не указали никаких своих конструкторов. А new не знает, какие числа передавать в качестве x, y, r и т.д.Figure** figure_colletion = new Figure * [this->collection_size];
figure_colletion
, к которому вы обрашаетесь в методе select_new_figure()
- это уже член класса, который вы нигде не выделили и ничем не заполнили.this->
перед каждым обращением к члену класса не обязательно. defineCode(std::cout << 13 << std::endl); // work
defineCode(stringLine);
заменяется просто на stringLine
, что есть бессмысленное выражение, вырезаемое еще на этапе компиляции. Box() : Figure( (const bool[4][4]){
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}
}, "Box") {};
brick = (OBJECT*)realloc(brick, sizeof(*brick) * brickLength);
brick = new Object[brickLength];
delete[]
.std::vector<Object>
. for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*i);
или for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*(7-i));
&result
. rewrite
из шаблона search
.rewrite
вверх, до специализации search
, то все скомпилируется. Или надо где-то выше первого использования шаблона rewrite задекларировать специализацию (что ваш закомментированный код и делает).Specialization must be declared before the first use that would cause implicit instantiation, in every translation unit where such use occurs:
a
для какой-то новой локальной переменной, когда a
выйдет из зоны видимости. Но чаще это место просто будет пустым до конца функции и никакой экономии памяти вы не получите.