【问题标题】: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' 的值或打印它或做任何事情而不将其传递给每个函数?

很抱歉,如果已经有这样的问题,我不怀疑,但我找不到任何问题!

提前致谢!

【问题讨论】:

  • 使其全球化。但是你为什么不想通过呢?在大多数情况下,这是更好的方法。
  • 因为那时我必须传递和返回大量变量,因为我将尝试在比上面的示例更大的范围内使用它..
  • 欢迎编程。如果变量太多,请将相关变量放入结构或类似结构中。你的规模越大,你就越有可能因为踩到你的全局变量并产生副作用而搞砸。

标签: c++ function variables parameter-passing user-defined-functions


【解决方案1】:

实际上只有两种方法:全局变量或参数传递。

如果您将变量声明为全局变量,即在全局范围内(以及之前)任何函数,那么所有函数都可以使用它。但是,应尽可能少使用全局变量。相反,我真的建议您将其作为参数传递,如果其他函数稍后需要使用该变量,则继续将其作为参数传递。

当然,既然您使用的是 C++,为什么不定义一个类并使变量成为该类的成员呢?然后你可以把所有相关的函数放在这个类中,并且所有的函数都可以使用这个变量,而不用把它变成全局变量或者作为参数传递。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 2020-11-25
    • 1970-01-01
    相关资源
    最近更新 更多