Inicjalizacja statycznego składnika klasy

0

Witam!

W jaki sposób dokonać inicjalizacji statycznego składnika klasy przed wywołaniem "najpierwszego" konstruktora?

Ponieważ jeden kod jest wart więcej niż tysiąc słów:

 #include <iostream>

#ifndef wxString
	#include <string>
	#define wxString std::wstring
#endif

class Class_name {
		/* std::cout << login_page; // crash'uje aplikację (jeśli member jest static). Jakiś sposób, by temu zapobiec?
			Ja wiem DLACZGEO aplikacja się crashuje. W jaki sposób zdefiniować zmienną statyczną PRZED wywołaniem pierwszego konstruktora? */

	static const wxString _string;
public:
	Class_name() {
		std::wcout << _string; /* Ta linia crash'uje aplikację (ponieważ stara się odczytać/zapisać z/do NULL pointer'a [lub z jakiegoś jeszcze innego powodu]).
			Problem leży w tym, iż konstruktor ten wywoływany jest przed inicjalizacją zmiennej statycznej.
			Jak można temu zaradzić? W jaki sposób zainicjalizować zmienną statyczną wcześniej?
		*/
	}

} Class_name; // konstruktor wywoływane PRZED poniższą definicją zmiennej statycznej.
const wxString Class_name::_string(L"abcdef");

Oraz, przy okazji, w jaki sposób poprawnie nazywa się tworzenie obiektu zaraz po definicji klasy ("class{} obiekt;") ? Podejrzewam, że "najpierwszejszy" nie należy do fachowej terminologii :]

Z góry bardzo dziękuję za odpowiedzi :)

0

W pliku z implementacja (cpp):
Class_name::Class_name="tekst"

o ile dobrze pamietam ;)

Mozesz tez uzyc listy inicjalizacyjnej konstruktora.

0

Nie wiem czy Cię dobrze zrozumiałem ale chyba chodzi Ci o to:

class A
{
static int x; // deklaracja zmiennej statycznej
};
A::x = 10; // definicja zmiennej statycznej
int main()
{
A nowyObiekt; // tworzenia nowego obiektu
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1