只能在栈上创建对象的类
方式一:
- 构造函数私有
- 提供一个公有的静态的栈上创建对象的方法
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;
};
本文介绍了两种在C++中限制对象仅能在栈上创建的方法:一是通过将构造函数设为私有并提供公有静态方法;二是重载并删除new操作符。这两种方法有效地防止了对象在堆上的创建。
685

被折叠的 条评论
为什么被折叠?



