C++ 速查手冊 V1.00 - 單元 7.5 - 結構




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


001 #include <iostream>
002
003 struct Demo {
004    int member1;
005    char *member2;
006    float member3;
007 };
008
009 int main() {
010    Demo d;
011    d.member1 = 19823;
012    d.member2 = "203";
013    d.member3 = 3.011;
014
015    std::cout << "member1: "
016              << d.member1
017              << std::endl;
018    std::cout << "member2: "
019              << d.member2
020              << std::endl;
021    std::cout << "member3: "
022              << d.member3
023              << std::endl;
024
025    return 0; 
026 }
027
028 /* Kaiching Chang 
029    u0705_1.cpp
030    2014-02 */

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


003 struct Demo {
004    int member1;
005    char *member2;
006    float member3;
007 };

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


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

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

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


001 #include <iostream>
002
003 struct Demo {
004    int member1;
005    float member2;
006    char *member3;
007     
008    void member4();
009 };
010
011 void Demo::member4() {
012    std::cout << "do something"
013              << std::endl;
014 }
015
016 int main() {
017    Demo d;
018    d.member4(); 
019
020    return 0;
021 }
022
023 /* Kaiching Chang 
024    u0705_2.cpp
025    2014-02 */

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


$ g++ u0705_2.cpp
$ ./a.out
do something
$

continue ...

沒有留言: