Statyczne funkcje i zmienne w klasie
Ostatnio zmodyfikowano 2012-07-31 21:48
SocrateZ Temat założony przez niniejszego użytkownika |
Statyczne funkcje i zmienne w klasie » 2012-07-31 21:24:37 W sumie to mam problem... :D, albo pytanie... Czy da się zmienić w klasie statyczną metodą statyczną zmienną? :D I czy da się przekazać zmienną statyczną do jakieś funkcji? Jak ktoś nie zrozumiał: Klasa class EControl { private: static ALLEGRO_SYSTEM_MOUSE_CURSOR _oldCursor; unsigned short _startX; unsigned short _startY; unsigned short _stopX; unsigned short _stopY; unsigned short _centerX; unsigned short _centerY; unsigned char _textAscent; static ALLEGRO_MOUSE_CURSOR * _newCursor; public: static void setCursor( ALLEGRO_SYSTEM_MOUSE_CURSOR cursor ); static void setCursor( ALLEGRO_MOUSE_CURSOR * cursor ); static void displayCursor( ALLEGRO_DISPLAY * display ); };
Definicja void EControl::displayCursor( ALLEGRO_DISPLAY * display ) { std::cout << sizeof( EControl::_oldCursor ); EControl::_oldCursor = ALLEGRO_SYSTEM_MOUSE_CURSOR_DEFAULT; al_set_system_mouse_cursor( display, EControl::_oldCursor ); }
|
|
DejaVu |
» 2012-07-31 21:41:14 Tworzysz metodę statyczną, przekazujesz jej jako argument wskaźnik na klasę i wówczas wywołujesz metodę zwykłą z klasy przekazanej poprzez argument. |
|
SocrateZ Temat założony przez niniejszego użytkownika |
» 2012-07-31 21:44:25 Hmm... ja głupi wcześniej nie wpadłem... Czyli tak: ALLEGRO_SYSTEM_MOUSE_CURSOR EControl::_oldCursor = ALLEGRO_SYSTEM_MOUSE_CURSOR_LINK; ALLEGRO_MOUSE_CURSOR EControl::* _newCursor = NULL;
void EControl::displayCursor( ALLEGRO_DISPLAY * display ) { if( EControl::_oldCursor ) al_set_system_mouse_cursor( display, EControl::_oldCursor ); else if( !EControl::_newCursor ) al_set_mouse_cursor( display, EControl::_newCursor ); }
void EControl::setCursor( ALLEGRO_MOUSE_CURSOR * cursor ) { ALLEGRO_MOUSE_CURSOR * _newCursor = cursor; }
I do setCursor przekazuje klasę jako argument? Trochę to idiotyczne :/ PHP ma self... Szkoda że tutaj tego nie ma -.- |
|
DejaVu |
» 2012-07-31 21:46:01 W C++ nie trzeba pisać wspomnianego "self" wcale (więc go nie ma) :) Więc czy takie głupie to bym nie powiedział. Można również pisać this->metoda(); .
/edit:
@up: nie chce mi się analizować kodu - dostałeś w każdym razie informację jak osiągnąć cel. |
|
SocrateZ Temat założony przez niniejszego użytkownika |
» 2012-07-31 21:48:23 Hmm... PHP też ma this, nawet parent... tutaj trzeba zadbać o to samemu :/ No i tutaj widzę this nie przejdzie...
@up Ok, wiem już jak się za to zabrać :) Dzięki za pomoc |
|
« 1 » |