【发布时间】:2016-04-10 13:07:42
【问题描述】:
我有以下类型的功能。我对那是什么样的声明感到困惑?我只习惯于传统类型(可能被称为其他类型),在函数声明后我有一个代码块。但这里有两个。你能告诉我这会做什么吗?
static void afunction(atype *atype)
{
{
//Do stuff
}
{
//Do stuff
}
}
【问题讨论】:
标签: c++
我有以下类型的功能。我对那是什么样的声明感到困惑?我只习惯于传统类型(可能被称为其他类型),在函数声明后我有一个代码块。但这里有两个。你能告诉我这会做什么吗?
static void afunction(atype *atype)
{
{
//Do stuff
}
{
//Do stuff
}
}
【问题讨论】:
标签: c++
在这些块中声明的所有变量都将被视为该块的本地变量,并且它们的析构函数(如果有)将在离开该块时被调用。
这可用于“隐藏”变量,或在该块中调用构造函数/析构函数。
例如为一个块的执行计时,你可以初始化一个类的变量,其中构造函数设置开始时间,而析构函数获取结束时间并计算持续时间。
这也可以以相同的方式用于锁定。在块的末尾,无论您如何以及从何处退出该块,都保证释放锁(将调用析构函数)。
【讨论】: