我这里有问题。我有两个A类和B类.A类消耗B类,我们不希望任何其他类创建B类实例。只有A类有权创建B类实例。
同时,我不想要B的单例实例,我也不想在A类中定义B类。
任何帮助。
提前致谢。
-Harsha
答案 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。