目录
内部类的概念
内部类的特征
sizeof(外部类) 的大小
内部类的实例化
内部类就是外部类的友元
内部类的概念
如果一个类定义在另一个类的内部,这个内部类就叫做内部类,内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员,外部类对内部类没有任何优越的访问权限
注意:内部类就是外部类的友元类,内部类可以通过外部类的对象参数来访问外部类中的所有成员,但是外部类不是内部类的友元
内部类的特征
1. 内部类可以定义在外部类的 pubilc、protected、private 都是可以的
2. 注意内部类可以直接访问外部类中的 static 成员,不需要外部类的对象/类名
3. sizeof(外部类) = 内部类,和内部类没有任何关系
sizeof(外部类) 的大小
代码演示:
class A
{
public:// 内部类class B{private:int _b;};private:int _a;
};
问:sizeof(A) 的大小
代码验证:
B 类只是受 A 类域和访问限定符的限制,其实他们是两个独立的类,所以 sizeof(A) 就只是计算 A 这个类的大小
内部类的实例化
代码演示:
A a1;A::B b1;
对于 A 这个外部类,直接实例化即可,但是 B 这个内部类要通过外部类 A 来指定才可以
以上是在类外面进行实例化的,但是如果把内部类设置为私有时,那么就只能在类里面访问
内部类就是外部类的友元
代码演示:
class A
{
public:// 内部类class B{public:// 内部类可以直接访问外部类的私有成员void Func(){A a1;a1._a = 1;}private:int _b;};private:int _a;
};
内部类默认就是外部类的友元,但是外部类不能直接访问到内部类的私有函数