I’m not exactly sure how to pose this question so I’ll start with some example code:
//header file
class A
{
public:
A();
private:
int x;
std::string arr[x];
}
//cpp file
class A
{
public:
A()
{
/*code to get the value of x from a cmd call*/
}
}
Is this code valid? More specifically, can I have my string array in my header file be of size x, even though x is not specifically given a value until an A object has been created?
If this doesn’t work, is my only other option to use a dynamically allocated array?
The code is not valid. You should use a vector instead.
Since
arris being initialized by the value ofx, the constructor only works whenxprecedesarrinA(as it is in your definition). However, if the only purpose ofxis to track the size of the array, it is not necessary, since avectorhas thesize()method.