我这里有问题。我有两个 A 类和 B 类。A 类消耗 B 类,我们不希望任何其他类创建 B 类的实例。只有 A 类有权创建 B 类的实例。
同时,我不想要 B 的单例实例,也不想在 A 类中定义 B 类。
任何帮助。
提前致谢。
-哈沙
我不太了解您的问题,但是您可以在与 A 类相同的 .cpp 文件中定义 B 类,因此没有其他类甚至会看到该定义,因此无法创建 B 类的实例,例如
一个.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 的构造函数设为私有并使用朋友类。