在一个类中定义另一个类,被嵌套的类的作用域只在它的上一级类中。
定义嵌套类的初衷是建立仅供某个类的成员函数使用的类。目的在于隐藏类名,减少全局标识符,从而限制用户能否使用该类建立对象。可以提高类的抽象能力,并且强调两个类之间的主从关系。
#include <iostream>
using namespace std;
class c1
{
public:
int a;
void foo();
class c2 //c2是嵌套类
{
public:
int a;
void foo();
} b;
};
//声明两个函数
void c1::foo() //c1的foo
{
a = 1;
}
void c1::c2::foo() //c2的foo
{
a = 2;
}
int main()
{
class c1 f;
f.foo(); //调用c1的foo,c1的a赋值为1
f.b.foo(); //调用c2的foo,c2的a赋值为2
cout << f.a << endl;
cout << f.b.a << endl;
return 0;
}