【发布时间】:2014-11-09 05:25:45
【问题描述】:
如何在另一个类的构造函数中分配对象数组?
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 我想创建
BloomFilter对象的数组。 -
std::vector在可以用的时候不用是非常不聪明的。
标签: c++ arrays class object memory-management