C++ 速查手冊 V1.00 - 單元 13.3 - 別名




關鍵字 (keyword) typedef 用來定義型態 (type) 的同義字,也就是別名,例如


001 #include <iostream>
002  
003 int main() {
004    typedef int INTEGER;
005    INTEGER a = 22;
006    std::cout << "a: "
007              << a
008              << std::endl;
009
010    return 0;
011 }
012  
013 /* Kaiching Chang 
014    u1303_1.cpp
015    2014-02 */

第 4 行定義 INTEGERint 的同義字


004 typedef int INTEGER;

因此可以用 INTEGER 來宣告變數 (variable)


005 INTEGER a = 22;

編譯執行,結果如下


$ g++ u1303_1.cpp
$ ./a.out
a: 22
$

typedef 通常用在自行定義的型態名稱,除了可以隱藏實作細節,當自行定義的名稱又長又瑣碎的時候,就可以簡化整個名稱,例如


001 #include <iostream>
002
003 struct SomethingWillHappened {
004     int a;
005 };
006  
007 typedef SomethingWillHappened SHDemo;
008  
009 int main() {
010    SHDemo d;
011    d.a = 22;
012
013    std::cout << "d.a: "
014              << d.a
015              << std::endl;
016
017    return 0;
018 }
019  
020 /* Kaiching Chang 
021    u1303_2.cpp
022    2014-02 */

這裡將 SomethingWillHappened 簡化為 SHDemo


007 typedef SomethingWillHappened SHDemo;

編譯執行,結果如下


$ g++ u1303_2.cpp
$ ./a.out
d.a: 22
$

continue ...

沒有留言: