Использование всех заглавных букв (а также использование его для инициализации block
) указывает на то, что вы намерены _BLOCK_STARTING_ADDRESS
быть константой класса для всех экземпляров.
Так что, прежде всего, сделайте это статическим
static const int _BLOCK_STARTING_ADDRESS = 2;
Почему?Потому что в противном случае это элемент данных каждого экземпляра.Это означает, что у каждого экземпляра есть небольшой кусочек, который должен быть const
, и вы не можете назначить по умолчанию этот константный бит.По этой причине компилятор не может сгенерировать для вас оператор присваивания по умолчанию.
Кроме того, в качестве стороны нет.Имена, начинающиеся с _[A-Z]
, зарезервированы для реализации C ++ для любого использования.Чтобы избежать возможности назальных демонов, я предлагаю вам изменить схему именования для него.Возможно даже тому, кто меньше кричит ?