我有一个代表 UI 小部件的模板类。该类被称为(令人惊讶的)Widget
。该类定义了 graphics_type
(通过 typedef
或类似的),它可以是 cairo_t
、HDC
、CDC*
或类似的东西。换句话说,Widget
定义了一个名为 graphics_type
的类型,它用于绘制内容。
如何使用 UML 表示 Widget
和 graphics_type
之间的关系?
红利问题:这里的 C++ 程序员是否发现 UML 在这些情况下有用?
最佳答案
Sparx EA 通过泛化将 typedef 链接到别名类型。至少当您从源代码导入时会发生这种情况。如果构造型为 <<typedef>>
,则 C++ 生成模板会覆盖 Class .如果 typedef 使用模板,EA 将插入:
typedef templateName<alias> alias;
否则,它会插入:
typedef aliasedClass alias;
我去寻找是因为我想要:
typedef aliasedClass* class_ptr;
而且我不知道如何用 UML 表达指针部分。我希望找到一些表达构造的标准方法,但没有运气。
选项 1:创建一个仅作为指针制作器的模板: 模板类 _ptr {/* TMTFWIW */}
选项 2:在我的 PIM 到 C++ PSM 转换中使用一个标记来插入 *
.
我想我会选择#2。
关于c++ - 使用 UML 表示在 C++ 模板类中定义的 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368867/