C++ 速查手冊

7.5 - 結構

結構可存放不同資料型態的數值,例如

#include <iostream>
  
struct Demo {
    int member1;
    char *member2;
    float member3;
};

int main() {
    Demo d;
    d.member1 = 19823;
    d.member2 = "203";
    d.member3 = 3.011;
    
    std::cout << "member1: " << d.member1 << std::endl;
    std::cout << "member2: " << d.member2 << std::endl;
    std::cout << "member3: " << d.member3 << std::endl;
    
    return 0; 
}

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

第 3 行定義一個結構,使用關鍵字 struct ,其後為結構的識別字名稱,後面的大括弧宣告結構的成員 (member) 。此例的 Demo 有 3 個成員,分別屬於 intchar*float

struct Demo {
    int member1;
    char *member2;
    float member3;
};

設定或存取結構的成員可利用小數點運算子 . ,此例編譯執行結果如下

$ g++ u0705_1.cpp
$ ./a.out
member1: 19823
member2: 203
member3: 3.011
$

若結構的成員為指標,就得利用 -> 運算子存取。

結構其實是預設為 public類別 (class) ,因此可加入成員函數 (member function) ,例如我們替 Demo 增加一個 member4()

#include <iostream>
  
struct Demo {
    int member1;
    float member2;
    char *member3;
    
    void member4();
};

void Demo::member4() {
    std::cout << "Do something!" << std::endl;
}

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

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

呼叫成員函數同樣用小數點運算子,編譯執行結果如下

$ g++ u0705_2.cpp
$ ./a.out
Do something!
$

上一頁 7.4 - 指標
回 C++ 速查手冊首頁
下一頁 7.6 - 聯合