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

奇迹私服技术
风之恋奇迹私服技术网是一家提供最新互联网编程技术网站

嵌套类隐藏在外围类中,只能在外围类中使用,如果在外围类以外的作用域中使用该类名,则需要按名称对其进行限定,今天风之恋奇迹技术频道小编为你详细解析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;
}

 

 

运行结果:

 

 

详细解析C++嵌套类与局部类的说明-第1张图片

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

提供最全面的奇迹sf开服版本和最新的奇迹私服开服技术信息,奇迹私服文库让每一位奇迹私服玩家找到自己需要的版本技术文章

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。