好奇的探索者,理性的思考者,踏实的行动者。
Table of Contents:
类的本质是一个命名空间。
如果一个类定义在另一个类的内部,这个内部类就叫做内部类。注意此时这个内部类是一个独立的类,它不属于外部类,只是包含在外部类的命名空间中。
注意内部类可以直接访问外部类中的static、枚举成员,不需要外部类的对象/类名。
内部类和友元类很像很像。只是内部类比友元类多了一点权限:可以不加类名的访问外部类中的static、枚举成员。其他的都和友元类一样。
class A
{
public: class B{};
};
int _tmain(int argc, _TCHAR* argv[])
{
A::B*b=new A::B();
return 0;
}
class A
{
private: static int i;
public: class B;
};
class A::B{
public:void foo(){cout<<i<<endl;}//!!!这里也不需要加A::i.
};
int A::i=3;
class A
{
public:
class B{int o;};
};
int _tmain(int argc, _TCHAR* argv[])
{
cout<<sizeof(A)<<endl;//1
return 0;
}