C++入门教程(七十九):嵌套类

小古银的官方网站(完整教程):http://www.xiaoguyin.com/
C++入门教程视频:https://www.bilibili.com/video/av20868986/

在类声明里面再写一个或者几个类声明,这些在类里面的类就是嵌套类。嵌套类外层的类叫做外围类。因为有不少的情况会出现需要设计一个类,而这个类只被自己设计的另一个类使用,为了限制这个类的范围,一般会把这个类放到另一个类里面,这样就成了嵌套类和外围类了。

请看下面简单的代码:

class enclose // 外围类
{
public:
    class inner // 嵌套类
    {
    };
};

int main(void)
{
    enclose::inner innerobj;
    return 0;
}

从上面代码就可以看出外围类和嵌套类是什么。接下来讲的是嵌套类中需要注意的事项。

嵌套类和独立的类不同的只有一点,就是它可以访问外围类的私有或者保护的静态成员,如下:

class enclose // 外围类
{
public:
    class inner // 嵌套类
    {
    public:
        static int x;
        void func(void)
        {
            // 可以访问外围类的私有或者保护的静态成员
            enclose::a = 0;
        }
    };
private:
    static int a;
};

int enclose::a = 0;
int enclose::inner::x = 0;

int main(void)
{
    enclose::inner innerobj;
    innerobj.func();
    return 0;
}

除此以外,嵌套类跟独立的类在使用上没有任何区别。

如果觉得嵌套类声明的时候缩进比较多的话,那么可以在外围类里面只用前置声明,然后在其他地方再详细声明。例如:

class enclose // 外围类
{
public:
    class inner; // 嵌套类的前置声明
};

class enclose::inner // 嵌套类
{
public:
    void func(void); // 嵌套类的成员函数的声明
};

int main(void)
{
    enclose::inner innerobj;
    innerobj.func();
    return 0;
}

// 嵌套类的成员函数的定义
void enclose::inner::func(void)
{
}

你可以放轻松点,这篇教程的内容比较简单,对吧o(* ̄▽ ̄*)ブ。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值