没有声明的支架

Dim*_*lis 0 c++ codeblocks

我看到一些代码有括号,没有""if或"for"或"do"或任何东西,只有评论.

像这样

//一些评论

{

int a = 5;

//和更多代码

}

这是什么?

注意:我注意到在使用我的IDE(代码:: blocks)时,左边有" - ",当你单击它时,它会隐藏括号中的所有代码.这是括号中唯一没有声明的用法吗?

jua*_*nza 5

这是一个范围.它限制了在其中声明的任何变量的生命周期.对于用户定义的类型,这意味着在退出作用域之前进行析构函数调用.

例如:

#include <iostream>
struct Foo
{
  ~Foo() { std::cout << "Foo destructor\n";  }
};

int main()
{
  std::cout << "before scope \n";

  {
    Foo f;
  }
  std::cout << "after scope\n";

}
Run Code Online (Sandbox Code Playgroud)