首页 > 编程 > C++ > 正文

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

2020-02-24 14:28:16
字体:
来源:转载
供稿:网友

嵌套类隐藏在外围类中,只能在外围类中使用,如果在外围类以外的作用域中使用该类名,则需要按名称对其进行限定,今天武林技术频道小编为你详细解析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++嵌套类与局部类的说明,希望对大家有所帮助!如果你还不知道这些操作方法的话,那么赶快学习一下吧!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表