【发布时间】:2012-07-31 18:38:46
【问题描述】:
谁能告诉我如何访问在另一个函数中声明和定义的变量。例如
void function1()
{
string abc;
}
void function2()
{
I want to access abc here.
}
如何做到这一点? 我知道使用参数我们可以做到这一点,但还有其他方法吗?
【问题讨论】:
-
我建议你阅读范围界定,你会明白为什么这是不可能的。
-
这根本没有意义:每次调用
function1都会有一个abc实例。在for(int i = 0; i < 100; ++i) { function1(); }中,你想要abc的一百个实例中的哪一个? -
你知道静态成员吗?
-
你真正想做什么?你为什么要这样做?正如您从答案中看到的那样,有许多替代方案可用。您应该做什么取决于您要实现的具体目标。
-
好吧,我忽略了参数方法,因为我使用的是 Qt,当我使用 void function1(QString& abc) 时出现问题,它给了我一些奇怪的错误,但如果我使用 void function1(int& abcd) 它编译正确