考虑 A 类和 B 类。A 类与 B 类友好。B 类有一个私有构造函数。A类可以创建B类实例,还是私有构造函数向编译器指示该类不能被实例化,即使是朋友类?
这是一些示例代码:
class B;
class A {
void myFunction() {
B newBobject;
}
};
class B {
private:
B() {}
public:
int someData;
friend class A;
};
另外,请注意我使用的是 C++03。如果它在 C++03 中无效,在 C++11 中是否允许?
作为一个附带问题,Singleton 方法是如何相关的?它是否专门处理实例化一个对象的一个且仅一个实例,还是其他什么?