Рассмотрим классы 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? Имеет ли дело конкретно с созданием экземпляра одного и только одного экземпляра объекта или это что-то еще?