详细解析C++嵌套类与局部类的说明

来源:爱站网时间:2019-08-15编辑:网友分享
嵌套类隐藏在外围类中,只能在外围类中使用,如果在外围类以外的作用域中使用该类名,则需要按名称对其进行限定,今天爱站技术频道小编为你详细解析C++嵌套类与局部类的说明。

嵌套类隐藏在外围类中,只能在外围类中使用,如果在外围类以外的作用域中使用该类名,则需要按名称对其进行限定,今天爱站技术频道小编为你详细解析C++嵌套类与局部类的说明。

1. 嵌套类
外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。
从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定。

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

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

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

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

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

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

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

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

 

#include
using namespace std;

 

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

void Outer::Inner::Fun()
{
  cout }

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

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

 

 

运行结果:

 

 

以上就是由爱站技术频道小编带来的详细解析C++嵌套类与局部类的说明,希望对大家有所帮助!如果你还不知道这些操作方法的话,那么赶快学习一下吧!

上一篇:详解C++空类

下一篇:详细解析exit和atexit的区别

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载