c++ question, how to define a member array, and it's size, outside of the class dec..
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
int main(int argc, char ** argv)
for (int i = 0; i < NUM_NAMES; i++)
std::cout << A::names[i] << std::endl;
I thought this was more c++ like. Doing it this way, to add another name to the list, you just do that. NUM_NAMES takes care of itself.
Unfortunately, it segfaults. At least, the real program does. It only segfaults at the very end, but I've traced it back to here. The memory does not get set aside like I hoped it would.
How can I have static member variable array, and be able to define the array, and it's size, outside of the class declaration?
I could just put Bob and Mary and everyone else, inside the class declaration, but the real version is very long, and that would be ugly and not very c++ like. Also, I keep the declaration and the implementations in different files, making it more inconvenient to edit both NUM_NAMES and the names themselves.
Thanks in advance.
Last edited by Winter Knight; 01-20-2007 at 09:53 AM.
The problem with the approach that you have used is that (as you found) the memory isn't allocated, so names may point to an area of memory but there is not any memory allocated to hold your data. You will need to allocate the memory using new, or as I said use the vector template and it will manage the memory for you.