
結構可存放不同資料型態的數值,例如
| 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 個成員,分別屬於 int 、 char* 與 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 ...
沒有留言:
張貼留言