gpt4 book ai didi

c++ - 在 C++ 中如何控制对对象的访问?

转载 作者:行者123 更新时间:2023-11-28 03:39:33 25 4
gpt4 key购买 nike

假设我有一个 Device 类。我不希望程序员能够实例化他自己的 Device 对象,所以现在我创建了一个 DeviceManager 类。 DeviceManager 是唯一将被实例化并通过让程序员指定某种 ID 来让程序员访问设备对象的实体。这样,程序员只需要清理 DeviceManager 类,不会留下任何杂散的 Device 对象。我主要关心的是如何为了勤奋的垃圾收集而控制对对象的访问。我在 C++ 中描述的“管理器”模式是个好主意吗?谢谢!

最佳答案

如果你真的需要它,是的。

要实现此控制,您可以将 Device 的构造函数设为 private 并在 Device< 中将 DeviceManager 声明为 protected 类。

class Device
{
private: //not necessary, private by default
Device();

friend class DeviceManager;
};

class DeviceManager
{
public:
Device* getDevice();
};

您还可以返回一个指向 Device 的智能指针(推荐),并根据您的需要将创建的设备保存在 DeviceManager 中。

这称为实例管理器模式。 DeviceManager 也是一个设备工厂。

此外,C++ 没有垃圾回收,但如果您使用智能指针,则无需担心内存管理。

关于c++ - 在 C++ 中如何控制对对象的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727041/

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