[C++] Przekazywanie do funkcji wskaźnika do zmiennej klasy
Ostatnio zmodyfikowano 2013-01-24 21:48
berkov Temat założony przez niniejszego użytkownika |
[C++] Przekazywanie do funkcji wskaźnika do zmiennej klasy » 2013-01-24 15:26:22 Hey ho! Potrzebuje przekzac wskaznik na zmienna wewnatrz klasy (zawsze LPSTR) do funkcji ale bez potrzeby deklarowania konkretnej klasy wewnatrz funkcji. Chodzi o to ze mam wiele klas i wiele dialogow i potrzebuje masowo wypelniac klasy stringami z tych dialogow i nie chce za kazdym pisac osobnej funkcji bo to zamias ulatwic mi prace, utrudni mi ja. Chodzi mi o to by zamiast pisac konkretna funkcje dla kazdej klasy jak nizej: bool Control2LPSTR( HWND control, USERS * target ) { DWORD dlugosc = GetWindowTextLength( control ); target->usr_name = new char[ dlugosc + 1 ]; GetWindowText( control, target->usr_name, dlugosc + 1 ); MessageBox( 0, target->usr_name, "", 0 ); return true; chcilbym miec cos takiego: bool Control2LPSTR( HWND control, char * target ) gdzie target to juz od razu wskaznik na konkretny string (zawsze LPSTR), tu: user_info->usr_name i tak oto ponizszy, ktory nie dziala: classes.h: (czesciowo) ----------- class USERS { public: unsigned long usr_id; LPSTR usr_name; LPSTR usr_pass; LPSTR usr_auth_login; char usr_invoices[ 1 ]; }; main.cpp: (czesciowo) ----------- USERS * user_info = new USERS;
Control2LPSTR( hLogin, user_info->usr_name ); MessageBox( 0, user_info->usr_name, 0, 0 );
classes.cpp: (czesciowo) ----------- bool Control2LPSTR( HWND control, char * target ) { DWORD dlugosc = GetWindowTextLength( control ); target = new char[ dlugosc + 1 ]; GetWindowText( control, target, dlugosc + 1 ); MessageBox( 0, target, "", 0 ); return true; } kompiluje sie ok, i wykonuje niby tez ok ale chociaz wewnatrz funkcji Control2LPSTR MessageBox wyswietla string to juz w main dostaje puste okienko. CZemu? myslalem ze przekazalem do funkcji wskaznik do zmiennej wewnatrz klasy i ta zmienna sie wypelnila ale najwyrazniej tak sie nie stalo. dzieki z gory! berkov. |
|
krzyk |
» 2013-01-24 15:35:53 bool Control2LPSTR( HWND control, char &* target )
chyba tak powinno być ale sam niewiem dlaczego więc niech ktoś bom ciekaw;)
//EDIT
bool Control2LPSTR( HWND control, char *& target ) |
|
berkov Temat założony przez niniejszego użytkownika |
» 2013-01-24 15:52:45 @krzyk, WOW! Mistrzu dziala! ale nie rozumiem tego zapisu... "wskaznik na wartosc wskaznika"??? to troche nie logiczne i zguplem!!
|
|
krzyk |
» 2013-01-24 16:00:33
Eeee...Gdybym był mistrzem to wiedziałbym dlaczego tak ma być a niewiem,więc niech jakiś wykształciuch wytłumaczy xD |
|
kubawal |
» 2013-01-24 16:09:16 Oznacza to: Referencja do wskaźnika do tablicy znaków zakończonej zerem (C-stringa) W skrócie jest to ref. do łańcucha w stylu języka C. Typ char &* oznacza wskaźnik na referencję znaku. char * cstr = "Blebleble"; char *& cstrref = str;
char ch = 'z'; char &* chptrref = & ch;
|
|
Mrovqa |
» 2013-01-24 21:48:30 Oznacza to: Referencja do wskaźnika do tablicy znaków zakończonej zerem (C-stringa) W skrócie jest to ref. do łańcucha w stylu języka C.
Typ char &* oznacza wskaźnik na referencję znaku.
char * cstr = "Blebleble"; char *& cstrref = str;
char ch = 'z'; char &* chptrref = & ch;
| Wiesz, co piszesz?Nie można deklarować wskaźnika do referencji. Z resztą - to nie ma w ogóle sensu. char * cstr = "Blebleble"; char *& cstrref = cstr;
char ch = 'z'; char *& chptrref = & ch;
|
|
« 1 » |