Problem z refernecją
Ostatnio zmodyfikowano 2012-08-21 09:02
Konradex Temat założony przez niniejszego użytkownika |
Problem z refernecją » 2012-08-20 17:46:29 Witam otóż mam problem z referencją która jest aliasem ciągu tekstowego. Pracuje w Code::Block. W poniższym kodzie: #include <iostream> #include <windows.h> using namespace std;
int statystyki(); int main() { int powiadomienie, i = 26, j = 0; char nick[ 26 ]; cout << "Podaj swoj nick: "; cin.get( nick, 25 ); system( "cls" ); cout << nick; char( & rNick )[ 26 ] = nick; cout << endl << rNick; } int statystyki() { cout << endl << rNick; }
Występuje taki błąd: error: 'rNick' was not declared in this scope| Proszę o szybką pomoc w rozwiązaniu tego problemu. |
|
m4tx |
» 2012-08-20 17:50:25 |
|
Konradex Temat założony przez niniejszego użytkownika |
» 2012-08-20 17:53:56 A to tak to jak to by miało wyglądać, żeby działało w miarę normalnie. W funkcji main() niby to działa, ale w statystykach już error jest. |
|
m4tx |
» 2012-08-20 17:56:11 Bo zmienna rNick jest w dostępna tylko w obrębie funkcji main(). Jeśli chcesz ją mieć w funkcji statystyki(), to albo dodaj ją jako argument do tej funkcji, albo zadeklaruj rNick jako zmienną globalną (nad definicją funkcji main()). |
|
Konradex Temat założony przez niniejszego użytkownika |
» 2012-08-20 18:22:31 Właśnie pisałem post, że mi się nie udaje i w tym momencie przypomniała mi się funkcja strcpy() dzięki której jak stworzyłem zamiast tej referencji tą zmienną globalną przypisałem jej bufer z nick'u :) Jak zwykle najprostrze rozwiązania przychodzą ostatnie :D
|
|
DejaVu |
» 2012-08-20 19:00:05 char( & rNick )[ 26 ] = nick;
Założę się, że nie wiesz co ta linijka tak na prawdę robi :P Pojechałeś ostro po bandzie... poza tym poczytaj lepiej o funkcjach Funkcje - pierwsze starcie. |
|
Konradex Temat założony przez niniejszego użytkownika |
» 2012-08-20 19:48:42 No tak teoretycznie wiem co ta linijka robi, ale w praktyce jak tego swobodnie używać to już gorzej. Efekt taki jaki chciałem osiągnąłem i chyba to się liczy :) |
|
Mrovqa |
» 2012-08-20 20:00:36 Ta linijka to ustawienie referencji na tablicę, taki alias. Innymi słowy - masz dwie nazwy na jedną zmienną. Operuje się dokładnie tak samo. Jakbyś zobaczył zapis wskaźnika na funkcję (albo gorzej - metodę :P), to byłoby o wiele gorzej :P heh |
|
« 1 » 2 |