Как я могу выделить массив объекта внутри другого класса в его конструкторе?Выделение массива объектов внутри другого класса (C++)
class BloomFilter
{
public:
BloomFilter(double fp, size_t capacity);
private:
size_t bf_m;
size_t bf_k;
};
class RSig {
public:
RSig(int32_t sizeL1, int32_t sizeL2, double bfFpRate) :
numSlot_sig(sizeL1), numSlot_bf(sizeL2)
{
TL_sigMem = new BloomFilter(bfFpRate, numSlot_bf)[sizeL1];
}
private:
int32_t numSlot_sig, numSlot_bf;
BloomFilter* TL_sigMem;
};
Код выше дает мне следующую ошибку:
In constructor 'RSig::RSig(int32_t, int32_t, double)’:
error: expected ‘;’ before ‘[’ token
TL_sigMem = new TL_sigMem(bfFpRate, numSlot_bf)[sizeL1];
Предпочтительно, я не хочу использовать std::vector
.
Просто чтобы быть ясно: вы хотите 'TL_sigMem' быть массивом объектов' BloomFilter', или массив указателей 'BloomFilter'? – manabreak
@manabreak Я хочу создать массив объектов BloomFilter. –
Невозможно использовать 'std :: vector', когда он может быть использован. –