Nec*_*cip 2 c++ inheritance typedef
我的编译器(VC++ 6.0)有一个小问题.在我看来,这样的代码应该导致错误;
class Base
{
private:
typedef int T;
};
class Derived : private Base // Here the Base class can be inherited publicly as well. It does not play any role
{
public:
T z;
};
int main()
{
Derived obj;
obj.z = 7;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码段在VC++ 6.0下编译和运行,没有任何问题.
关于SW-Design,这段代码并不完美.不应将任何类成员声明为公共成员.但我对这方面不感兴趣.
我的问题是typedef.typedef在Base类中声明为private.从我对C++的理解来看,这个typedef对Derived类或main()函数都不可见.但两人都完美地看待他们.
有没有人对这种现象有解释?
提前致谢
Necip