【问题标题】:Trying to understand C++ function with two blocks of code [duplicate]试图用两个代码块理解 C++ 函数[重复]
【发布时间】:2016-04-10 13:07:42
【问题描述】:

我有以下类型的功能。我对那是什么样的声明感到困惑?我只习惯于传统类型(可能被称为其他类型),在函数声明后我有一个代码块。但这里有两个。你能告诉我这会做什么吗?

static void afunction(atype *atype)
{
  {

         //Do stuff

  }

  {
         //Do stuff
    }
}

【问题讨论】:

标签: c++


【解决方案1】:

在这些块中声明的所有变量都将被视为该块的本地变量,并且它们的析构函数(如果有)将在离开该块时被调用。

这可用于“隐藏”变量,或在该块中调用构造函数/析构函数。

例如为一个块的执行计时,你可以初始化一个类的变量,其中构造函数设置开始时间,而析构函数获取结束时间并计算持续时间。

这也可以以相同的方式用于锁定。在块的末尾,无论您如何以及从何处退出该块,都保证释放锁(将调用析构函数)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2014-07-31
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    相关资源
    最近更新 更多