C++ 中的巢狀類


巢狀類是在另一個類中宣告的類。巢狀類也是封閉類的成員變數,並具有與其他成員相同的訪問許可權。但是,封閉類的成員函式對巢狀類的成員沒有特殊訪問許可權。

以下程式演示了 C++ 中的巢狀類。

示例

 線上演示

#include<iostream>
using namespace std;
class A {
   public:
   class B {
      private:
      int num;
      public:
      void getdata(int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
};
int main() {
   cout<<"Nested classes in C++"<< endl;
   A :: B obj;
   obj.getdata(9);
   obj.putdata();
   return 0;
}

輸出

Nested classes in C++
The number is 9

在上面的程式中,類 B 在類 A 中定義,所以它是一個巢狀類。類 B 包含一個私有變數 num 和兩個公有函式 getdata() 和 putdata()。getdata() 函式接收資料,函式 putdata() 顯示資料。如下所示。

class A {
   public:
   class B {
      private:
      int num;
      public:
      void getdata(int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
};

在函式 main() 中,定義了類 A 和類 B 的物件。然後使用變數 obj 呼叫函式 getdata() 和 putdata()。如下所示。

cout<<"Nested classes in C++"<< endl;
A :: B obj;
obj.getdata(9);
obj.putdata();

更新於:2020 年 6 月 24 日

25K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始吧
廣告
© . All rights reserved.