我在设置数组大小时遇到问题。在我的代码中,我有:
class Test {
public:
....//Functions
private:
string name[];
};
Test() {
//heres where i want to declare the size of the array
}
这可能吗?
不,但是您可以使用字符串向量代替:
private:
std::vector<std::string> name;
然后在你的构造函数中:
Test()
: name(sizeOfTheArray)
{
}
向量将根据您指定的字符串数调整大小。这意味着字符串的所有内存将立即分配。您可以根据需要更改数组的大小,但没有什么说您必须这样做。因此,您可以获得使用动态分配的数组的所有好处,然后获得一些好处,而没有缺点。
您将需要使用new
.
像这样声明变量:
private:
string* name;
在你的构造函数中这样做:
int size = ...
name = new string[size];
并像这样释放析构函数中的内存:
delete [] name;