如何访问另一个函数中的局部变量

how to access a local variable in another function?

本文关键字:函数 局部变量 另一个 何访问 访问      更新时间:2024-05-11

我刚刚接受了一次采访,有人问我如何将函数的局部变量访问到其他函数。代码流-

class A{
public:
void fun1(int a){
int local_var=a;
}

void fun2(){
// here i want to use local_var of fun1
//you are not allowed to do any changes either in fun1 and class
// however you can do anythingh in fun2.
}

}

有什么办法吗?

局部变量不存在如果函数不是当前正在执行,即使如此,它们也只"存在";在非常狭窄的范围内

这里的local_var是一个短暂的int,它只在fun1执行期间产生。这个功能一完成,它就消失了。

fun2()无法访问它,因为它当时不存在。即使您在fun1()中调用fun2(),它仍然无法访问,因为fun2()有自己不同的本地作用域。

如果您想要共享某些内容,则需要类上的属性(如果该属性应在该类的单个成员内共享(,或者static变量(如果它在所有成员之间共享(。

你的意思可能是:

class A{
public:
int m_a = 0;
void fun1(int a) {
m_a = a;
}

void fun2() {
// Can use m_a here
}
}