инициализация массива приватных членов с размером как параметр инициализации класса

поэтому у меня есть класс «Office» для программы, которую я сейчас пишу, и в каждом «Office» есть определенное количество кассиров, которые либо заняты, либо простаивают. Я хочу представить эти кассиры как частный массив int класса Office.
У меня проблема в том, что количество счетчиков является параметром объявления для класса офиса, поэтому я не могу просто пойти

private:
int tellers[num_tellers];

Я пробовал разные вещи с конструкторами, но ничего не получается. Как мне сделать это правильно? Все, что я вижу в Интернете, использует новый оператор, но я не заинтересован в использовании указателя для этого.

заранее спасибо

2

Решение

У вас есть два варианта:
Первый и небезопасный вариант — иметь

private:
int* tellers;

и в вашем конструкторе:

tellers = new int[yourParamGoesHere];

второй и более безопасный вариант — использовать вектор, тогда

private:
std::vector<int> tellers;

и в вашем конструкторе вы бы сделали:

Office(int numberOfTellers):
tellers(std::vector<int>(numberOfTellers))

И затем всякий раз, когда вы хотите прочитать или записать любое из целых чисел, вы индексируете вектор, как если бы вы использовали массив, например:

tellers[0] = 42;
5

Другие решения

Других решений пока нет …