¿Hay alguna forma de evitar esto:clases amigo recursivas
class B;
class C {
public:
C() { }
private:
int i;
friend B::B();
};
class B {
public:
B() { }
private:
int i;
friend C::C();
};
produce un error:
prog.cpp:8: error: invalid use of incomplete type ‘struct B’
prog.cpp:1: error: forward declaration of ‘struct B’
creo que el más cercano que puedes conseguir es 'B' amigo clase –
¿Qué es exactamente lo que quiere hacer que se necesitaba el constructor de B y C para ser visible a los demás? –
@Mike, eso es realmente un ejemplo sintético. La situación real es que, por razones complicadas para entrar, no puedo permitir que una dependencia en C fuerce una dependencia en la definición de B. – BCS