雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

C++嵌套類與局部類詳細解析

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊:

1. 嵌套類
外圍類需要使用嵌套類對象作為底層實現(xiàn),并且該嵌套類只用于外圍類的實現(xiàn),且同時可以對用戶隱藏該底層實現(xiàn)。
從作用域的角度看,嵌套類被隱藏在外圍類之中,該類名只能在外圍類中使用。如果在外圍類之外的作用域使用該類名時,需要加名字限定。

嵌套類中的成員函數(shù)可以在它的類體外定義。

嵌套類的成員函數(shù)對外圍類的私有成員沒有訪問權(quán),反之亦然。

嵌套類僅僅只是語法上的嵌入。

2. 局部類
類也可以定義在函數(shù)體內(nèi),這樣的類被稱為局部類(loacl class)。局部類只在定義它的局部域內(nèi)可見。

局部類的成員函數(shù)必須被定義在類體中。

局部類中不能有靜態(tài)成員函數(shù)。

在實踐中,局部類很少使用。

下面給出一段代碼來說明:

復(fù)制代碼 代碼如下:

#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;
}


運行結(jié)果:

上一篇:關(guān)于C++中虛擬繼承的一些總結(jié)分析

欄    目:C語言

下一篇:淺析string類字符串和C風(fēng)格字符串之間的區(qū)別

本文標題:C++嵌套類與局部類詳細解析

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/4172.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有