C++ 速查手冊

9.13 - 巢狀類別

類別中也可定義類別,這樣的類別被稱為巢狀類別 (nested class) ,舉例如下

#include <iostream>
  
class Demo {
public:
    class Demo2 {
    public:
        Demo2(int a) {
            d2a = a;
        }
        
        int d2a;
    };
    
    Demo2 *d2;
    
    void do_something() {
        d2 = new Demo2(34);
        std::cout << d2->d2a << std::endl;
    }
};

int main() {
    Demo d;
    d.do_something();
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   https://kaiching.org/
   檔名:u0913.cpp
   功能:示範 C++ 的類別
   作者:張凱慶*/

Demo2 為在 Demo 中定義的類別

class Demo2 {
public:
    Demo2(int a) {
        d2a = a;
    }
        
    int d2a;
};

d2Demo 的資料成員,用來建立 Demo2 的物件,注意, d2指標

*d2;

編譯執行,結果如下

$ g++ u0913.cpp
$ ./a.out
34
$

上一頁 9.12 - mutable 成員
回 C++ 速查手冊首頁
下一頁 9.14 - Copy 建構函數
回 C++ 教材
回程式語言教材首頁