类设计器中的 Visual C++ Typedef

Typedef 语句在一个名称与其基础类型之间创建一个或多个间接层。 类设计器支持用 typedef 关键字声明的 C++ 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

名称 : 类型

typedef

绘制一条与名称类型相连的关联连线(如果可能的话)。

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 或类,以及连接这两个形状的线(与关联连线类似)的“别名”

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

请参见

参考

typedef说明符

概念

使用 Visual C++ 代码(类设计器)