Я создаю класс для управления некоторым оборудованием, которое имеет несколько разных версий. Из-за этого разнообразия версий определенные параметры должны быть жестко закодированы, и они различны для каждой версии. Тем не менее, помимо этих жестко заданных параметров, все версии обеспечивают одинаковую функциональность.
Я подумал, что при создании этой архитектуры я буду использовать базовый класс, содержащий все необходимые методы, и производные классы (DerivedV1, DerivedV2 и др.). c) где я бы просто определил эти жестко закодированные параметры как переменные-члены, а затем передал их в качестве параметров конструкции в базовый класс.
Вот минимальный пример кода: (он развернут на микроконтроллере, поэтому использование массивов вместо векторов также не учитывает использование std :: cout, он был включен только здесь, чтобы проиллюстрировать проблему )
Базовый конструктор
Количество кошек: 64
Количество собак: 64
[0 , 0, 2, 0, 0, 0, 4781, 64, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 4704, 64, 0, 0, 3040, 64, 0, 0 , 42640, 13254, 32766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44869, 10268, 32576, 0, 0, 0, 0, 0, 42648, 13254, 32766, 0, 0 , 0, 1, 0, 3456, 64, 0, 0, 0, 0, 0, 0, 13708, 48499]
[0, 0, 0, 0, 0, 0, 4704, 64, 0 , 0, 3040, 64, 0, 0, 42640, 13254, 32766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44869, 10268, 32576, 0, 0, 0, 0, 0 , 42648, 13254, 32766, 0, 0, 0, 1, 0, 3456, 64, 0, 0, 0, 0, 0, 0, 13708, 48499, 5513, 17381, 3040, 64, 0, 0, 42640 , 13254, 32766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13708, 63219, 29188, 48153, 13708, 57481, 17840, 484 85, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4704, 64, 0, 0, 42648, 13254, 32766, 0, 1, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 3040, 64, 0, 0, 42640, 13254, 32766, 0, 0, 0, 0, 0, 3081]
Комбинации: 7936
Производный конструктор
Что я здесь не так делаю? Почему аргументы, отправляемые в BaseClass, не являются правильными, определенными в производном классе?