gpt4 book ai didi

c++ - 限制客户端在堆 C++ 上分配对象

转载 作者:行者123 更新时间:2023-11-28 05:41:28 24 4
gpt4 key购买 nike

我有一个类 X 和方法 addX(),它在堆上分配 X 的对象。我想限制客户端代码直接分配 X 的对象(这样 X *ptr = new X 是不允许的)。

我已将 newnew[] 运算符声明为私有(private),但由于我正在通过 addX( ) 我需要定义它们(运算符)。那么,他们的定义应该是什么样的?

最佳答案

隐藏构造函数,使用工厂函数:

class A
{
public:
static A* create() { return new A; }
static void destroy(A* a) { delete a; }
protected:
A() {}
A(const A&) {}
A& operator=(const A&) {}
};

关于c++ - 限制客户端在堆 C++ 上分配对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37010069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com