zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

C++ 解析 详细 嵌套 局部
2023-06-13 09:15:05 时间

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

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

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

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

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

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

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

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

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

复制代码代码如下:

#include<iostream>
usingnamespacestd;

classOuter
{
public:
 classInner
 {
 public:
  voidFun();
 };
public:
   Innerobj_;
 voidFun()
 {
  cout<<"Outer::Fun...."<<endl;
  obj_.Fun();
 }
};

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

voidFun()
{
 classLocalClass
 {
 public:
  intnum_;
  voidInit(intnum)
  {
    num_=num;
  }
  voidDisplay()
  {
    cout<<"num_"<<num_<<endl;
  }
 };
 LocalClasslc;
 lc.Init(10);
 lc.Display();
}

intmain()
{
 Outero;
 o.Fun();
 Outer::Inneri;
 i.Fun();
 Fun();
 return0;
}


运行结果: