Si tengo una clase anidada de este modo:Definición anidado clase de archivo de origen
class MyClass
{
class NestedClass
{
public:
// nested class members AND definitions here
};
// main class members here
};
Actualmente, las definiciones de MyClass
se encuentran en el archivo CPP
pero las definiciones de NestedClass
se encuentran en el archivo de cabecera, es decir, No puedo declarar las funciones/constructores en el archivo CPP
.
Así que mi pregunta es, ¿cómo definir las funciones de NestedClass
en el archivo CPP? Si no puedo, ¿cuál es el motivo (y si este es el caso, tengo una vaga idea de por qué sucede esto, pero me gustaría una buena explicación)? ¿Qué hay de las estructuras?
¿Qué quiere decir por "no ... como otras clases internas"? –
@Alf: ¿dónde escribí 'no'? – sje397
Lo siento, mis ojos evidentemente se cruzaron o algo así. Sin embargo, todavía te preguntas qué quieres decir con la última frase. Quiero decir, una clase interna no necesita definirse dentro de la clase externa (por ejemplo, la expresión idiomática PIMPL común se basa en eso). Y eso aparentemente contradice lo que escribes en la última oración, ¿entonces posiblemente te refieres a algo más de lo que está literalmente escrito? Cheers, –