C++ 速查手冊 V1.00 - 單元 9.13 - 巢狀類別




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


001 #include <iostream>
002
003 class Demo {
004 public:
005    class Demo2 {
006    public:
007       Demo2(int a) {
008          d2a = a;
009       }
010
011       int d2a;
012    };
013
014    Demo2 *d2;
015
016    void do_something() {
017       d2 = new Demo2(34);
018       std::cout << d2->d2a
019                 << std::endl;
020    }
021 };
022
023 int main() {
024    Demo d;
025    d.do_something();
026
027    return 0;
028 }
029  
030 /* Kaiching Chang 
031    u0913.cpp
032    2014-02 */

Demo2 為在 Demo 中定義的類別


005 class Demo2 {
006 public:
007    Demo2(int a) {
008       d2a = a;
009    }
010
011    int d2a;
012 };

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


014 *d2;

編譯執行,結果如下


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

continue ...

沒有留言: