小古银的官方网站(完整教程):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(* ̄▽ ̄*)ブ。