如何访问另一个函数中的局部变量
how to access a local variable in another function?
我刚刚接受了一次采访,有人问我如何将函数的局部变量访问到其他函数。代码流-
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
}
}
相关文章:
- 局部变量保留函数中的值
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 如何在函数外部访问函数中局部变量的值?
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- 函数局部静态变量:从性能角度来看的优点/缺点
- 是否可以影响 C++ 中回调函数的局部变量?
- 将共享指针传递给函数参数 - 将其分配给局部变量的正确方法是什么
- 调用一个小函数两次(例如在if条件和主体中)比将结果存储在局部变量中更可取
- C++ - 指向函数中局部变量的指针
- 如何在 C++ 的 lambda 函数中传递同名的局部变量和参数(使用此关键字)?
- Clang++ 6.0 内存清理器未报告返回值指示条件分支的函数中的未初始化局部变量
- 如何将局部变量传递给 lambda 函数
- 局部变量的作用域是块或函数
- 函数原型未初始化的局部变量
- 尝试声明函数的局部变量,但得到范围错误
- 为什么堆栈中的函数局部变量之间存在内存空间
- 返回函数局部变量作为引用
- 函数局部变量在函数调用之间保持不变
- 对静态函数局部变量的引用