只能在栈上创建对象的类
方式一:
- 构造函数私有
- 提供一个公有的静态的栈上创建对象的方法
class StackOnly
{
public:
static StackOnly getInstance()
{
return StackOnly();
}
private:
StackOnly(){};
};
void creatStackOnly()
{
StackOnly so = StackOnly::getInstance();
}
方式二:
把operator new函数声明为delete函数
class StackOnly2
{
public:
StackOnly() {}
private:
void* operator new(size_t n) = delete;
};