クラス デザイナにおける Visual C++ の typedef
更新 : 2007 年 11 月
typedef ステートメントは、名前と、その元になる型との間に 1 つ以上の間接層を作成します。クラス デザイナは、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 Specifier」を参照してください。
C++ の typedef の図形には、typedef で指定された型の図形があります。たとえば、ソースが typedef class を宣言している場合、図形の角は丸くなり、[クラス] というラベルを持ちます。typedef struct では、図形の角は直角になっており、[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 またはクラスが表示され、この 2 つの図形を結合する [行のエイリアス] (関連線に似たもの) が表示されます。 |
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 |
参照
概念
クラス デザイナにおける Visual C++ コードの使用