類別設計工具中的 Visual C++ Typedef
Typedef 陳述式會在名稱及其基礎型別之間,建立一個或多個間接取值 (Indirection) 層。 [類別設計工具] 支援 C++ typedef 型別,這些型別是以關鍵字 typedef 進行宣告,例如:
typedef class coord
{
void P(x,y);
unsigned x;
unsigned y;
} COORD;
然後您就可以使用這個型別來宣告執行個體:
COORD OriginPoint;
雖然您可以不使用名稱宣告 typedef,但是 [類別設計工具] 並不會使用您所指定的標記名稱,而是使用 [類別檢視] 所產生的名稱。 例如,下列宣告是有效的,但是在 [類別檢視] 及 [類別設計工具] 中卻顯示成名稱為 __unnamed 的物件:
typedef class coord
{
void P(x,y);
unsigned x;
unsigned y;
};
如需使用 typedef 型別的詳細資訊,請參閱 typedef 規範。
C++ typedef 的圖案形狀和 typedef 中所指定的型別圖案相同。 例如,如果來源宣告 typedef class,則圖案為圓的邊角且標籤為 [類別]。 如果是 typedef struct,則圖案為方的邊角且標籤為 [結構]。
類別和結構中都可以宣告巢狀 typedef,因此類別和結構圖案可以將巢狀 typedef 宣告顯示為巢狀圖案。
Typedef 圖案支援內容功能表上的 [顯示為關聯] 和 [顯示為集合關聯] 命令。
下列是 [類別設計工具] 所支援的 typdef 型別的範例:
程式碼項目 |
類別設計工具檢視 |
---|---|
typedef type name |
name : type typedef 繪製一條關聯線連接至型別 name (如果可能的話)。 |
typedef void (*func)(int) |
func: void (*)(int) typedef 函式指標的 Typedef。 未繪製關聯線。 如果來源型別是函式指標,[類別設計工具] 就不會顯示 typedef。 |
|
MyInt: int typedef A 類別 繪製一條關聯線,從來源型別圖案指向目標型別圖案。 |
Class B {}; typedef B MyB; |
B 類別 MyB : B typedef 以滑鼠右鍵按一下 typedef 圖案以及按一下 [顯示為關聯],會顯示 typedef 或類別,以及一條 [別名] 線段結合兩個圖案 (類似關聯線)。 |
typedef B MyB; typedef MyB A; |
MyBar : Bar typedef 同上。 |
|
B 類別 MyB : B typedef A 類別 MyB 是巢狀的 typedef 圖案。 |
#include <vector> ... using namespace std; ... typedef vector<int> MyIntVect; |
vector<T>類別 MyIntVect : vector<int> typedef |
class B {}; typedef B MyB; class A : MyB {}; |
MyB : B typedef -> B B A 類別 -> MyB [類別設計工具] 不支援使用內容功能表命令顯示這類關聯。 |
#include <vector> Typedef MyIntVect std::vector<int>; Class MyVect : MyIntVect {}; |
std::vector<T> 類別 MyIntVect : std::vector<int> typedef MyVect 類別 -> MyIntVect |