您的位置:首页 > 编程语言 > C语言/C++

C++嵌套类和局部类

2013-07-31 21:01 253 查看
C++嵌套类和局部类

1. 嵌套类
      外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。

从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定。

嵌套类中的成员函数可以在它的类体外定义。

嵌套类的成员函数对外围类的私有成员没有访问权,反之亦然。

嵌套类仅仅只是语法上的嵌入。

2. 局部类

类也可以定义在函数体内,这样的类被称为局部类(loacl class)。局部类只在定义它的局部域内可见。

局部类的成员函数必须被定义在类体中。

局部类中不能有静态成员函数。

在实践中,局部类很少使用。

下面给出一段代码来说明:

#include<iostream>
using namespace std;

class Outer
{
public:
class Inner
{
public:
void Fun();
};
public:
Inner obj_;
void Fun()
{
cout<<"Outer::Fun...."<<endl;
obj_.Fun();
}
};

void Outer::Inner::Fun()
{
cout<<"Inner::Fun..."<<endl;
}

void Fun()
{
class LocalClass
{
public:
int num_;
void Init(int num)
{
num_=num;
}
void Display()
{
cout<<"num_"<<num_<<endl;
}
};
LocalClass lc;
lc.Init(10);
lc.Display();
}

int main()
{
Outer o;
o.Fun();
Outer::Inner i;
i.Fun();
Fun();
return 0;
}

运行结果:



参考资料:http://blog.csdn.net/jnu_simba/article/details/9156427
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: