友元内嵌种

友元内嵌类
如下程序为什么不能编译通过,只要说明原因即可,无需修改,谢谢
#include <iostream>
using namespace std;
class MyClass
{
    class palm;
public:
    void test(palm& p)
    {
        p.m_a;
    }
};

class MyClass::palm
{
    int m_a;
    friend class MyClass;
};

int main()
{
    return 0;
}

------解决方案--------------------
你的palm在MyClass之后才定义

test里面怎么使用p.m_a;这时候还没有m_a啊

要么将test的实现放在class MyClass::palm之后
要么将palm的定义放在test之前