【问题标题】:Need a single instance but not through singleton需要单个实例但不通过单例
【发布时间】:2012-04-23 16:56:35
【问题描述】:

我这里有问题。我有两个 A 类和 B 类。A 类消耗 B 类,我们不希望任何其他类创建 B 类的实例。只有 A 类有权创建 B 类的实例。

同时,我不想要 B 的单例实例,也不想在 A 类中定义 B 类。

任何帮助。

提前致谢。

-哈沙

【问题讨论】:

  • 这是 C++ 还是 Java,还是其他面向对象的语言?

标签: class singleton instance


【解决方案1】:

我不太了解您的问题,但您可以在与 A 类相同的 .cpp 文件中定义 B 类,因此其他类甚至不会看到该定义,因此无法创建 B 类的实例,例如

a.hpp

class B;

class A {
    B *b;
    A();
    ...
};

a.cpp

#include <a.hpp>

class B
{
    ...
};

A::A()
{
    b = new B();
}

A::~A()
{
    delete B;
}

如果您希望 B 类位于单独的文件中,您可以将其放入 b.cpp 并将此文件包含在 a.cpp 中。 您也可以将 B 的构造函数设为私有并使用 friend classes

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多