C++ 快速導覽 - 結構

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

#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; 
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:structdemo.cpp
    功能:示範 C++ 程式
    作者:張凱慶
    時間:西元 2013 年 1 月 */


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


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



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


結構其實是預設為 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(void)
{
    Demo d;
    d.member4(); 
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名: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...

沒有留言: