类设计器中的 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 Specifier。
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。 |
|
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 |