自学内容网 自学内容网

C++ ——— 内部类

目录

内部类的概念

内部类的特征

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;
};

内部类默认就是外部类的友元,但是外部类不能直接访问到内部类的私有函数


原文地址:https://blog.csdn.net/weixin_55341642/article/details/145120897

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!