
C++支持类的嵌套,其语法比较简单。代码是最好的说明。
1 #include <iostream>
2 using namespace std;
3
4 class Outter{
5 public:
6 int a;
7 static int s;
8 //nested class and enclosing class are independent.
9 class Inner{
10 public:
11 int b;
12 //nested class can access static members of enclosing class
13 int foo(){ return b + s;}
14 int bar();
15 };
16 };
17
18 int Outter::s = 1;
19 //define a nested class member outside of the class declaration.
20 int Outter::Inner::bar(){
21 return 0xdeadbeef;
22 }
23
24 int main(){
25 Outter o;
26 o.a = 0;
27 //if nested class is specified as public, then everyone can use the nested class.
28 //if nested class is specified as protected, then only the enclosing class,
29 //friend of the enclosing class and derived class of the enclosing class can access the nested class.
30 //if the nested class is specified as private, then only the enclosing class
31 //and friend of the enclosing class can access the nested class.
32 Outter::Inner i;
33 i.b = 1;
34 cout<<i.foo()<<endl;
35 cout<<hex<<i.bar()<<endl;
36 return 0;
37 }




近期评论