欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

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

来源:本站原创|时间:2020-01-10|栏目: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++中虚拟继承的一些总结分析

栏    目:C语言

下一篇:浅析string类字符串和C风格字符串之间的区别

本文标题:C++嵌套类与局部类详细解析

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/4172.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有