"Wydłużenie życia" zmiennej w instrukcji warunkowej
Ostatnio zmodyfikowano 2013-11-05 16:55
marek.teske Temat założony przez niniejszego użytkownika |
"Wydłużenie życia" zmiennej w instrukcji warunkowej » 2013-11-05 14:52:46 Witam! Chcę napisać w C++ program, w którym jakieś zmienne będą deklarowane w instrukcjach warunkowych if, i bym na nich mógł pracować poza if'em. Problem w tym, iż poza if'em zmienna "umiera". Czy można jakoś zadeklarować zmienną globalną w instrukcji warunkowej funkcji głównej lub chociaż "Wydłużyć życie" zmiennej? |
|
madmike44 |
» 2013-11-05 14:57:06 Dwie opcje: 1. Deklaracja zmiennej przez blokami instrukcji warunkowych. 2. Użycie słowa kluczowego "static" przy deklaracji zmiennej w bloku instrukcji warunkowej. Przykład deklaracji: |
|
marek.teske Temat założony przez niniejszego użytkownika |
» 2013-11-05 15:02:55 Nie napisałeś jak użyć tego static, a mi dalej wyrzuca błąd |
|
madmike44 |
» 2013-11-05 15:04:31 No właśnie napisałem :) Pokaż kod źródłowy.... |
|
marek.teske Temat założony przez niniejszego użytkownika |
» 2013-11-05 15:35:19 To co ty napisałeś to zwykła deklaracja zmiennej, a ja po prostu dopisałem na początku static. 1 sposób mi się nie przyda gdyż ta zmienna ma być WEWNĄTRZ IF'A, by została utworzona tylko w konkretnym przypadku. |
|
marek.teske Temat założony przez niniejszego użytkownika |
» 2013-11-05 15:36:36 Dobra, teraz masz, ale wcześniej mi się to nie wyświetliło więc sory |
|
marek.teske Temat założony przez niniejszego użytkownika |
» 2013-11-05 15:42:12 dalej mi twierdzi poza if'em że zmienna nie zadeklarowana :( o to kod: #include<iostream> #include<conio.h> using namespace std; int main() { string b; cin >> b; if( b == "liczba" ) { static int a; cin >> a; } if( b == "slowo" ) { static string a; cin >> a; } cout << a; getch(); } |
|
den93 |
» 2013-11-05 16:55:17 jakieś zmienne będą deklarowane w instrukcjach warunkowych if, i bym na nich mógł pracować poza if'em |
Nie da się tak, a nawet jeśli by się dało to nie miało by to sensu. Słowo kluczowe static niczego tutaj nie zmienia, bo pomimo tego, że statyczna zmienna istnieje przez cały okres działania programu i nie zdycha poza blokiem to i tak nie ma jak się do niej odwołać. Rozwiązanie: Deklaracja zmiennej przed blokami instrukcji warunkowych. |
Twój kod powinien wyglądać tak jeśli twój program ma mieć jakiś sens: int main() { std::string b; std::cin >> b; if( b == "liczba" ) { int a; std::cin >> a; std::cout << a; } if( b == "slowo" ) { std::string a; std::cin >> a; std::cout << a; } getch(); } |
|
« 1 » |