Предположим, у меня есть простая консольная программа:
(не проверял, и он может содержать ошибки, так как я новичок)
#include <iostream>
using namespace std;
void startProgram();
int main(){
a = 20; //I want to somehow set this so that I can use it in any other function
//without passing it through like startProgram(a);
startProgram();
return 0;
}
void startProgram(){
cout << a << endl;
}
Итак … Как мне сделать так, чтобы я мог изменить значение «а» или распечатать его или сделать что-либо, не передавая его каждой функции?
И извините, если уже есть такие вопросы, в которых я не сомневаюсь, но я не смог их найти!
Заранее спасибо!
На самом деле есть только два пути: глобальные переменные или передача аргументов.
Если вы объявляете переменную как глобальную переменную, то есть в глобальной области видимости снаружи (и до) любые функции, тогда все функции смогут использовать его. Однако глобальные переменные должны использоваться как можно меньше. Вместо этого я действительно рекомендую передать его в качестве аргумента, если другим функциям потребуется использовать переменную позже, а затем продолжить передавать его в качестве аргумента.
Или, конечно, поскольку вы используете C ++, почему бы не определить класс и не сделать переменную членом класса? Затем вы можете поместить все связанные функции внутри этого класса, и все могут использовать переменную, не делая ее глобальной или передавая ее в качестве аргумента.
Других решений пока нет …