Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

"Wydłużenie życia" zmiennej w instrukcji warunkowej

Ostatnio zmodyfikowano 2013-11-05 16:55
Autor Wiadomość
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?
P-95333
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:
C/C++
static int zmienna = 0;
P-95334
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
P-95335
madmike44
» 2013-11-05 15:04:31
No właśnie napisałem :) Pokaż kod źródłowy....
P-95336
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.
P-95337
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
P-95338
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:
C/C++
#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();
}
P-95339
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:
C/C++
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();
}
P-95343
« 1 »
  Strona 1 z 1