tablica zawierająca wskaźniki do obiektów, access violation

0

Witam

Od razu mówię, że nie jestem mocny w c++, dotychczas zajmowałem się jedynie PHP'em i C#. Otóż mam pewien problem, mam tablicę obiektów typu button i chciałbym żeby teraz podany element takiej tablicy wskazywał na obiekt.

class WinApiXtension
{
	protected static HINSTANCE hWnd; // Main Window handle
	protected static HINSTANCE programhWnd; // Program handle
	protected static int hControlID = 1000;
	public static Button currID;
	public static Button* database[]; // to jest tablica obiektow typu button
}

 
class Button
{
	//tu niewazne


	private HINSTANCE Create(string caption, int x = 50, int y = 50)
	{
		HINSTANCE hWnd = WinApiXtension.hWnd; // Read global handle
		HINSTANCE button_hWnd; // Make handle
		HINSTANCE programhWnd = WinApiXtension.programhWnd; // Read program handle
		int id = this.hID;

		WinApiXtension.database[id] = &this; // tutaj staram się przypisać obiektowi o ID 1001 wskaźnik do obiektu ale dostaję Access violation
        }
 

Co robię źle? Pewnie to jakiś kretyński błąd ale w c++ nie jestem ekspertem

EDIT:: Żeby ktoś się nie pomylił. To jest język D, C++ z odśmiecaczem i kilkoma bajerami jak dynamiczne tablice.

0

Może tak:

 WinApiXtension::database[id] = &this;

tutaj też zapewne musisz zmienić:

 HINSTANCE programhWnd = WinApiXtension::programhWnd;
0

To jest ok, to jest język D, czyli ulepszony C++ w którym pozbyto się już takich właśnie archaizmów, nie wiem o co tu chodzi wymyśle coś innego.

0

W każdym chyba języku tablicę trzeba zainicjalizować (nadać rozmiar, przydzielić pamięć), to w tym D chyba jest podobnie...

0
GodlikePL napisał(a):

To jest ok, to jest język D, czyli ulepszony C++

D w ogóle nie pochodzi od C++. Nawet OOP skrajnie rożni się w wielu miejscach, a to najbardziej "zgodna" część D i C++, poza wspólnym podzbiorem odziedziczonym z C.

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