题
我最近想了解一C++的程序,是由的人,我承担了一个背景中的功能编程:例如,他曾宣布一个 封闭 类其他广泛使用,这不会有点像什么被称为封闭在功能方案编制。另一类被称为 警卫队, 但是我还没有想通了但什么是良好的。这似乎有某种形式的清理功能。
唯一的语言中,我看到一个概念被称为 警卫队 是朗,但是,这并不远程类似于代码我发现。在其他什么语言不这样一个概念存在,提交人的C++码可能已经提到的?
解决方案
要我来说,它听起来就像他用RAII。结果 在类的构造函数/析构函数是用来symetrically处理某种形式的资源分配/释放一个异常安全的前提下(什么Java程序员将最终{}的析构函数存在保证被称为调用)。
这是一个很普通的C ++成语并在现代C广泛UED ++
做的代码看起来是这样的:
void Plop()
{
Guard guard(lock);
// Do lots of stuff
}
下面的防护件被锁定在构造锁定和解锁中的析构函数的锁定。
其他提示
在一般术语中,护卫仅仅是其需要评估为真用于沿着一些路径执行继续的构建体。这或类似的东西存在于所有有用的图灵完备的编程语言,但也许是如此基本,往往是不单独命名为一个实体。下面是在Haskell一个简单示例:
f x
| x < 0 = -x
| otherwise = x
这相当于绝对值函数:否定的数,如果它的负产生其正对应;否则,返回在通过了相同的值这里有两个警卫:。x < 0
,当x小于零,这是真实的,并且otherwise
,这始终是真的
卫兵在计算机科学中通常指的是布尔表达式,表示一个循环结构应该继续。例如(赦免双关语)
for (int i = 0; i < N; ++i)
/* stuff */
下面,i < N
是保护。
这是很难没有更多的信息更全面地回答你的问题。
不隶属于 StackOverflow