c++ - 使用 UML 表示在 C++ 模板类中定义的 typedef

标签 c++ templates uml generic-programming

我有一个代表 UI 小部件的模板类。该类被称为(令人惊讶的)Widget。该类定义了 graphics_type(通过 typedef 或类似的),它可以是 cairo_tHDCCDC* 或类似的东西。换句话说,Widget 定义了一个名为 graphics_type 的类型,它用于绘制内容。

如何使用 UML 表示 Widgetgraphics_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/

相关文章:

c++ - 如果字符串参数不是字符串文字,是否可以强制编译错误?

uml - 如何在 UML 中添加类和数据库

c++ - 在 C++ 中为结构实现索引器

c++ - 如何在不获取 "Undefined symbols for architecture x86_64"的情况下使用 fmt 库

C++ 了解变量生命周期和绑定(bind)生命周期之间的区别

c++ - 访问嵌套模板类型

c++ - 我可以始终使用 std::inserter(container, container.end()) 而不是 std::back_inserter(container) 吗?

c++ - 如何使用 Qt Designer 创建模板小部件类?

uml - 如何在序列图上表示 if condition1 else if contion2?

html - 我可以使用什么图表来显示 Html 事件和操作