Is there any way around this:
class B;
class C {
public:
C() { }
private:
int i;
friend B::B();
};
class B {
public:
B() { }
private:
int i
I realize that this is a really silly idea, but couldn't you—theoretically—accomplish this through inheritance, by making the parent class' constructors friends? The code compiles, at least, questionable though it may be.
class A {
public:
A() { }
private:
int i;
};
class D {
public:
D() { }
private:
int i;
};
class B : public A {
public:
B() { }
private:
friend D::D();
};
class C : public D {
public:
C() { }
private:
friend A::A();
};