C++嵌套类与局部类详细解析
C++嵌套类与局部类详细解析
发布时间:2016-12-28 来源:查字典编辑
摘要:1.嵌套类外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。从作用域的角度看,嵌套类被隐...

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;

}

运行结果:

C++嵌套类与局部类详细解析1

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C语言学习
热门C语言学习
编程开发子分类