目前我想在多线程环境中创建包装器访问器类。这个类的目的很简单 - 抓住它的结构锁定并释放它的破坏锁定。除此之外,它与普通指针相同。此外,我想防止在堆区域上创建它以确保最终释放锁。
逆是相当容易的(带有工厂方法的私有构造函数),但我不知道只有堆栈变量是可能的。反正有吗?
答案 0 :(得分:12)
那么,您为类重载operator new
并将其声明为私有?
答案 1 :(得分:0)
class Lock {
public:
Lock() {
performLock();
}
~Lock() {
performUnlock();
}
}
void foo() {
// ... Code
Lock onStackOnly;
// ... Code that is locked
}
void foo() {
// ... Code
{
Lock onStackOnly;
// ... Code that is locked
}
// This code is unlocked.
}