Ответ 1
Вы можете. Если ваш внутренний класс имеет такой метод, как:
class MyClass {
class NestedClass
{
public:
void someMethod();
};
// main class members here
};
... тогда вы можете определить его в .cpp файле так:
void MyClass::NestedClass::someMethod() {
// blah
}
Структуры - это почти то же самое, что и классы на С++ - просто по умолчанию для "public" для их доступа. Они рассматриваются во всех других отношениях, как классы.
Вы можете (как отмечено в комментариях) просто объявить внутренний класс, например:
class MyClass {
class NestedClass;
// blah
};
.. и затем определите его в файле реализации:
class MyClass::NestedClass {
// etc.
};