Initialize member-variables in header-file

c++, header-files, initialization

Solution

The compiler suggests one solution: add `-std=c++11` flag to the compiler to enable this C++11 feature. This would add a lot of other features that make C++ programming a lot more enjoyable.

If switching to C++11 is not an option for you, use initializer list in the constructor:

MyClass() : FILENAME("prices.txt"), temp(new double[SIZE]) {}

Note: Since you create a `temp` in the dynamic memory area, you need to add a destructor, a copy constructor, and an assignment operator. You would be better off using a dynamic container, e.g. `std::vector` for your data, because it simplifies your memory management code.

Problem

I get compilation warnings when I initialize the following member variables in the header-file ``` private: const std::string FILENAME = "prices.txt"; double *temp = new double[SIZE]; ``` Warning: non static data member initializers only available with -std=c++11 or std=gnu++11 How do I best fix this? Should i just declare the variables in the header-file and then initialize them in the constructor?

Original source