需要单个实例,但不需要通过单例

时间:2012-04-23 16:56:35

标签: class singleton instance

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

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

任何帮助。

提前致谢。

-Harsha

1 个答案:

答案 0 :(得分:0)

我真的不明白你的问题,但是你可以在与A类相同的.cpp文件中定义B类,所以没有其他类甚至可以看到定义,因此不能创建B类的实例,例如< / p>

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