首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

【奇怪】派生类子类对基类访问权限
派生类的子类如何取得对基类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啦。

热点排行