首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用UML中的"void*“作为输入来描述一个成员函数?

如何用UML中的"void*“作为输入来描述一个成员函数?
EN

Stack Overflow用户
提问于 2020-05-05 03:40:42
回答 2查看 208关注 0票数 2

我是UML的新手,如何用一个成员函数来描述下面的类?

代码语言:javascript
复制
// used on linux
#include <unistd.h>

class LinuxReadWrapper
{
  public:
    LinuxReadWrapper(){/** Ctor */}
    ~LinuxReadWrapper(){/** Dtor */}

    ssize_t WrapperRead(void* buf)
    {
      return read(fd, buf, cnt);
    }

  private:
    int fd{-1};
    size_t cnt{0};
};

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-05 06:20:35

一种解决方案可能是在模型中创建一个void或void*类型。然后用下面的cf输入您的输入参数。这也取决于您是否需要这只用于文档目的,或者也用于代码生成/反向。在最后一种情况下,这将取决于使用的工具..。

票数 2
EN

Stack Overflow用户

发布于 2020-05-09 15:00:59

虽然红熊的答案非常实用,但值得提醒的是:

  • UML内置原语类型仅限于:IntegerStringBooleanUnlimitedNaturalReal
  • UML类型可以在配置文件的帮助下进行扩展。这样的概要文件可以扩展UML标准元模型并引入新的«datatype»。配置文件是一个包,您可以在所有需要它的模型中导入它。对于特定于编程语言的类型,有一个编程语言概要文件是很常见的。
  • 指针(例如my_type *)需要格外小心,因为通常指针不是与UML模型相关的类型,因为指针的目的是实现与普通对象(例如类my_type)的关联。
  • 在这方面,void*指针有些特殊,因为它指向一个未知类型的对象,因此保持它在模型中是一种可以理解的方法。

好消息是数据类型是UML的一个标准特性。所以,在任何体面的建模工具中,你都应该找到一种方法。例如:

  • 企业架构师允许您向项目添加新的数据类型。
  • StarUML允许您向项目添加新的数据类型。
  • 视觉范式允许您向项目配置添加新的数据类型。
  • 很多工具只允许你使用你想要的任何类型。例如,Visual Studio只允许您使用任何数据类型,并将无法识别的类型添加到模型中。
  • 等等。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61605368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档