Зависимые переменные в C ++?

Я пытался спросить раньше, но мне не очень понятно, поэтому я снова спрашиваю.

Я хочу иметь переменную, которая зависит от значения другой переменной, например b в этом примере:

int main(){
    int a;
    dependent int b=a+1; //I'm just making this up
    a=3;
    cout << b; //prints 4
    a=4;
    cout << b; //prints 5
}

Конечно, этого нет в C ++, но это то, что я хочу.

Вместо этого я попытался создать функцию:

int main(){
    int a;
    int b(){ return a+1; } //error
    a=3;
    cout << b(); //would print 4 if C++ allowed nested functions
    a=4;
    cout << b(); //would print 5 if C++ allowed nested functions
}

Вышеупомянутое не работает, потому что C ++ не допускает вложенных функций.

Я могу выполнять функции только вне main (), например:

int b(){
    return a+1; //doesn't work because a is not in scope
}

int main(){
    int a;
    a=3;
    cout << b();
    a=4;
    cout << b();
}

Но это не работает, потому что a не находится в той же области видимости, что и b (), поэтому мне пришлось бы передать a в качестве параметра, а я не Не хочу этого делать.

Есть ли какие-нибудь уловки, чтобы получить что-то похожее на зависимую переменную, работающую в C ++?

7
задан john smith 29 July 2011 в 05:26
поделиться