C++中局部变量使用的限制?

6 c++ oop scope

我在技术面试中遇到了一些问题,我认为我知道,但想要仔细检查(他们说我通过了,但我不确定这些):

  1. 在类方法中声明的变量...可以在该方法之外使用,例如在另一个方法中吗?(我说不)

  2. 可以将方法中声明的变量作为参数传递给另一个方法吗? (我说是,但我不确定)


这是一个入门级的C++职位,我习惯于C,所以我想仔细检查我对C++/OO概念的理解.

whe*_*ies 4

  1. 类方法中的变量在该方法中实例化并完全包含在该方法中,只能在该方法中使用。它的寿命是有限的。 编辑:澄清一下,我并不是说它不能传递给函数作用域内的另一个函数调用,我不是在谈论实例化成员变量或静态变量。

  2. 是的,如果从现有方法中调用该方法,则可以将其传递给另一个方法。为什么?因为它的生命周期与父方法相关,而不是从方法内部调用的方法。

让我举例说明:

//aVar does not exist.
int foo(){
   int aVar = 1; //it's been born
   cout << doSomething(aVar); // still alive

   return aVar; //still alive but a copy is being returned from the function.  Not aVar itself!
} // it's dead, man
Run Code Online (Sandbox Code Playgroud)

  • @Sauron 永远不要停止提问和学习。另外,祝你的职业生涯和未来的面试一切顺利。 (3认同)