Если я правильно понял, вы хотите, чтобы суперкласс создавал (а не просто инициализировал) массив с плавающей точкой при создании любого из подклассов.При создании экземпляра унаследованного класса сначала вызывается конструктор базового класса, и вам нужно передать ему значения valueA и valueB - вам необходимо добавить их в качестве аргументов конструктора:
superClass::superClass(int valueA, int valueB) :
valueA(valueA), valueB(valueB), array(0)
{
// now create an array of requested length - allocate memory for it
array = new float[valueA + valueB];
}
// don't forget to deallocate memory for it (possibly in destructor)
superClass::~superClass()
{
delete[] array;
array = 0;
}
Затем при создании экземпляровнаследуемого класса, вы можете предоставить значения A и valueB в качестве параметров конструктора суперкласса:
firstSubClass::firstSubClass() : superClass(100, 2)
{
//...
}
Не рекомендуется использовать жестко закодированные значения (магические числа), поэтому было бы лучше добавить valueA и valueB в качестве подклассааргументы конструктора:
firstSubClass::firstSubClass(int valueA, int valueB) : superClass(valueA, valueB)
{
//...
}
Наконец, вам следует избегать массивов.Это C ++, используйте std::vector<float>
, это намного безопаснее и проще в использовании!