是否有任何特定的方式来表示 UML 中的运算符重载。例如,我有以下内容:
virtual MyClass& operator= (const MyClass& right) = 0;
我可以假设它可以表示为 UML 中的普通函数,其中运算符名称为=
,输入参数为(const MyClass& right)
,返回类型为MyClass&
?。
我的假设正确吗?
是否有任何特定的方式来表示 UML 中的运算符重载。例如,我有以下内容:
virtual MyClass& operator= (const MyClass& right) = 0;
我可以假设它可以表示为 UML 中的普通函数,其中运算符名称为=
,输入参数为(const MyClass& right)
,返回类型为MyClass&
?。
我的假设正确吗?
好的,我通过回到我的 UML 大学笔记找到了解决方案 :) (此外,我很高兴地确认,经过这么多年,大学笔记仍然非常有价值,而且总是很值得拥有!永远不要把它们扔掉)。
这virtual
被认为是刻板印象。操作/函数名称为operator=
返回类型为MyClass&
参数名称right
为const MyClass&
回顾一下,完整的 UML 符号应该如下:
<<virtual>> operator=(right:const MyClass&):MyClass&
除了诺查丹玛斯的回答:
如果您希望将强制转换运算符添加到您的类/结构中:
operator int32_t() { return id; }
您可以将以下内容键入为 UML:
int32_t(): operator
作为一种黑客。生成的代码看起来与此答案顶部的示例非常相似。