Mam pytanie odnośnie nowego sposobu nadawania wartości domyślnych składowym klasy w C++11. Chodzi o tę metodę gdzie w definicji klasy nadajemy atrybutom wartości i jeśli lista inicjalizacyjna konstruktora nie zdefiniuje własnych to zostaną wykorzystane.
Przykładowo mamy:
class MojaKlasa {
static const int LENGTH = 100;
MojaKlasa() {} //Użyta zostanie wartość domyślna podana przy deklaracji składowej napis
const char* napis = new char[LENGTH];
}
Teraz pora na pytanie. Z uwagi na to, że składowa statyczna LENGTH jest typu wbudowanego to mogę ją zainicjować wewnętrz definicji klasy. Ale pytanie czy mogę to jednak zrobić w pliku cpp nie narażając się na błędne działanie linijki
const char* napis = new char[LENGTH];
Wydaje mi się, że owa wartość domyślna to tylko taki "szablon" i faktycznie zostanie stworzona i wykorzystana dopiero przy konstrukcji jakiegoś obiektu, a wtedy wartość LENGTH będzie już znana. Przeniesienie więc inicjalizacji LENGTH to pliku cpp nie powinno więc nic popsuć. Ale są to tylko moje przypuszczenia i wolę się upewnić czy jest to legalne. Co na ten temat mówi standard?