【发布时间】:2021-04-03 19:56:27
【问题描述】:
此代码有误:
void functionA (){
int varA;
functionB();
}
void functionB(){
varA = 2; ///???
}
此代码是一个错误,因为显然在函数 B 内部,“varA”尚未定义,我引用了一个未声明的变量。
我的问题是,鉴于这两个函数的范围/层次结构,有没有办法通过函数 B 内部的代码(然后在函数 A 内部调用函数 B)来更改函数 A 的 varA?
我知道你可以通过将当前类实例作为参数传递给带有“this”关键字的函数来对类做类似的事情。这样,即使函数是全局定义的,您也可以通过函数更改局部类变量。可以用嵌套函数做类似的事情吗?谢谢!
【问题讨论】: