友元类访问私有成员函数的有关问题

友元类访问私有成员函数的问题
在下把一个类声明成另外一个类的友元类,但是当这个友元类访问那个类的私有成员函数时候,却出现了下面的问题:
Test   error   LNK2019:   无法解析的外部符号   "private:   unsigned   short   __thiscall   CElement::GetLength(void) "   (?GetLength@CElement@@AAEGXZ)   ,该符号在函数   "public:   void   __thiscall   CWave::ReadElement(class   CElement   *) "   (?ReadElement@CWave@@QAEXPAVCElement@@@Z)   中被引用

其中CWave类已经在CElement类中声明为其友元类,程序中访问CElement类的私有数据成员没有问题,但访问私有成员函数时候编译就出现了上面的错误。
请大家指教,谢谢!

------解决方案--------------------
访问控制是编译时进行的,编译既然通过就说明不是友元不友元的问题了
检查下你的CElement::GetLength(void)是不是没有实现体
------解决方案--------------------
这个不是编译错误,是链接错误
我想到了一个问题,你不会是把inline函数的实现体放在cpp文件里的吧?
------解决方案--------------------
呵呵,算暂时解决了...
但是还是很奇怪,按理说非inline函数不要求在声明时定义的啊
------解决方案--------------------
如果楼主用的VC6的编译器的话, 就是VC6的BUG, 有些人通过打SP5或SP6的补丁可以解决问题, 但在我的机器上不行(奇怪)

我的解决办法是进行前置声明.
------解决方案--------------------
奇怪的错误,误打误撞的解答