C++ 快速導覽 - 結構

結構 (structure) 可存放不同資料型態 (data type) 的數值,例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
struct Demo {
    int member1;
    float member2;
    char *member3;
};
 
int main(void)
{
    Demo d;
    d.member1 = 1;
    d.member2 = 2.0;
    d.member3 = "3";
     
    std::cout << "member1: " << d.member1 << std::endl;
    std::cout << "member2: " << d.member2 << std::endl;
    std::cout << "member3: " << d.member3 << std::endl;
 
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    檔名:structdemo.cpp
    功能:示範 C++ 程式
    作者:張凱慶
    時間:西元 2013 年 1 月 */


第 3 行定義一個結構,使用關鍵字 (keyword) struct ,其後為結構的識別字 (identifier) 名稱,後面的大括弧宣告結構的成員 (member) 。此例的 Demo 有 3 個成員,分別屬於 intfloatchar 指標 (pointer)
3
4
5
6
7
struct Demo {
    int member1;
    float member2;
    char *member3;
};


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



也可以用 -> 運算子存取結構的成員。


結構其實是預設為 public 的類別 (class) ,因此可加入成員函數 (member function) ,例如我們替 Demo 增加一個 member4()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
struct Demo {
    int member1;
    float member2;
    char *member3;
     
    void member4();
};
 
void Demo::member4() {
    std::cout << "do something" << std::endl;
}
  
int main(void)
{
    Demo d;
    d.member4();
     
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    檔名:structdemo2.cpp
    功能:示範 C++ 程式
    作者:張凱慶
    時間:西元 2013 年 1 月 */


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



中英文術語對照
結構structure
資料型態data type
關鍵字keyword
識別字identifier
成員member
指標pointer
類別class
成員函數member function


您可以繼續參考
複合資料型態


相關目錄
回 C++ 快速導覽
回 C++ 教材
回首頁


參考資料
C++ reference
cplusplus.com
Cprogramming.com C++ Tutorial

C++ Primer, Fourth Edition, Stanley B. Lippman...

沒有留言: