Я пытаюсь подружиться с классом, чтобы он мог связаться с его частным конструктором.
В some_file.h
class B;
namespace some_name {
class A {
public:
A() {}
private:
A (int x) {}
friend class ::B;
};
}
В other_file.h
#include "some_file"
namespace {
class B {
protected:
A* get_a(int x) { return new A(x); }
};
}
При компиляции этого кода я получаю сообщение об ошибке: 'some_name :: A :: A (int)' является приватным.
Теперь я приватный, поэтому я подружилсяB. Что я здесь не так делаю?Разве ты не можешь подружиться со своим конструктором?Есть ли проблема с пространством имен?
Спасибо