No se puede reenviar-declarar una clase anidada como esa.
Dependiendo de lo que intentes hacer, tal vez puedas usar un espacio de nombres en lugar de una clase en la capa externa. Puede reenviar-declara una clase tan ningún problema:
namespace Outer {
struct Inner;
};
Outer::Inner* sweets; // Outer::Inner is incomplete so
// I can only make a pointer to it
Si su exterior absolutamente debe ser una clase, y no se puede calzador en un espacio de nombres, entonces usted necesita para exterior para ser una complete el tipo en el contexto donde reenvía declarar interno.
class Outer
{
class Inner; // Inner forward-declared
}; // Outer is fully-defined now
Outer yes; // Outer is complete, you can make instances of it
Outer::Inner* fun; // Inner is incomplete, you can only make
// pointers/references to it
class Outer::Inner
{
}; // now Inner is fully-defined too
Outer::Inner win; // Now I can make instances of Inner too
Su código es el siguiente cadena sin fin de "Outer contiene externa contiene externa contiene exterior ..." – Muxecoid
posible duplicado de [¿Cómo reenviar declarar una clase interna?] (Http://stackoverflow.com/questions/1021793/how-do-i-forward-declare-an-inner-class) –