次の方法で共有


クラス デザイナにおける 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 を表示しません。

typedef int MyInt;
class A {
   MyInt I;
};

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

上記と同じ。

Class B {};
typedef B MyB;
class A {
   MyB B;
};

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++ コードの使用

参照

typedef Specifier