0

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

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

任何帮助。

提前致谢。

-哈沙

4

1 回答 1

0

我不太了解您的问题,但是您可以在与 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 的构造函数设为私有并使用朋友类

于 2012-04-23T17:17:58.693 回答