【奇怪】派生类子类对基类访问权限解决方法

【奇怪】派生类子类对基类访问权限
派生类的子类如何取得对基类protected成员的访问权限?
譬如下面一段代码:
C/C++ code

#include<stdio.h>
#include<stdlib.h>

class Base
{
protected:
    class SubBase {};
};

class Derived : public Base
{
public:
    Derived() { SubDerived * test = new SubDerived; delete test; }
private:
    class SubDerived : public SubBase {};
};

int main(int argc, char* argv[])
{
    Derived * test = new Derived;
    printf("Hello World!\n");
    system("pause");
    delete test;
    return 0;
}



VC6编译器显示无法找到SubBase (error C2504: 'SubBase' : base class undefined)
Dev C++编译运行正常
难道这个问题在C++规范中没有规定, 而是依赖编译器的问题? 
我正在使用VC6, 然而我希望将SubBase的接口隐藏, 请问有什么方法可以实现?

------解决方案--------------------
Base::SubBase
------解决方案--------------------
VC6这样的编译器我觉得你可以换掉了。VC6很不标准的。在Vs2008下编译通过。
------解决方案--------------------
我这里是VC2008,可以编译运行。
------解决方案--------------------
那你就换window下的gcc啦。