初始化私有成员数组w/size作为类初始化参数

initializing private member array w/ size as a class initialization parameter

本文关键字:初始化 参数 size 成员 数组      更新时间:2023-10-16

因此,我为当前正在编写的程序创建了一个"Office"类,每个"Office"都有一定数量的出纳员,他们要么忙,要么闲。我想将这些teller表示为Office类的私有int数组。我遇到的问题是出纳员的数量是office类的一个声明参数,所以我不能只使用

private: 
    int tellers[num_tellers];

我对构造函数尝试了不同的方法,但似乎都不起作用。我该如何正确地做到这一点?我在网上看到的所有东西都在使用新的运算符,但我对使用指针没有兴趣。

提前感谢

您有两个选项:第一个也是不安全的选择是使用

private:     
    int* tellers;

并且在您的构造函数中:

tellers = new int[yourParamGoesHere];

第二个也是更安全的选择是使用矢量,然后你就会有

private:
    std::vector<int> tellers;

在你的合同中,你会做:

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

然后,每当你想读或写任何整数时,你都会像索引数组一样索引向量:

tellers[0] = 42;