如何跨多个函数使用变量?
Posted
技术标签:
【中文标题】如何跨多个函数使用变量?【英文标题】:How do I use variables across multiple functions? 【发布时间】:2013-05-12 03:51:49 【问题描述】:假设我有一个简单的控制台程序如下:
(由于我是新手,还没有测试它可能包含错误)
#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;
那么...我该如何做才能更改 'a' 的值或打印它或做任何事情而不将其传递给每个函数?
很抱歉,如果已经有这样的问题,我不怀疑,但我找不到任何问题!
提前致谢!
【问题讨论】:
使其全球化。但是你为什么不想通过呢?在大多数情况下,这是更好的方法。 因为那时我必须传递和返回大量变量,因为我将尝试在比上面的示例更大的范围内使用它.. 欢迎编程。如果变量太多,请将相关变量放入结构或类似结构中。你的规模越大,你就越有可能因为踩到你的全局变量并产生副作用而搞砸。 【参考方案1】:实际上只有两种方法:全局变量或参数传递。
如果您将变量声明为全局变量,即在全局范围内(以及之前)任何函数,那么所有函数都可以使用它。但是,应尽可能少使用全局变量。相反,我真的建议您将其作为参数传递,如果其他函数稍后需要使用该变量,则继续将其作为参数传递。
当然,既然您使用的是 C++,为什么不定义一个类并使变量成为该类的成员呢?然后你可以把所有相关的函数放在这个类中,并且所有的函数都可以使用这个变量,而不用把它变成全局变量或者作为参数传递。
【讨论】:
以上是关于如何跨多个函数使用变量?的主要内容,如果未能解决你的问题,请参考以下文章