sách gpt4 ai đã đi

Làm thế nào để vẽ các khái niệm C++ trong sơ đồ lớp UML?

In lại 作者:行者123 更新时间:2023-12-03 06:50:52 26 4
mua khóa gpt4 Nike

如何在UML类图中绘制C++概念?
具体来说,我有以下代码:

template
concept Printable = requires(T a, std::ostream &where) {
{ where << a };
};

template
concept Identifiable = requires(T a) {
{ a.getId() } -> std::convertible_to;
};

template
concept Listable = Identifiable && Printable;

然后是一个类:
template
class Liste {
...
void add(T *data);
...
}
如果它是常规模板,则只需将 T放在类角落的正方形中即可。但是这些概念呢?

1 Câu trả lời

C++ concepts定义对与模板类相关联的类型的约束:

  • 由于UML支持class template,因此您通常会使用大括号或自然语言或OCL将该constraints的参数表示为大括号。前者在早期设计阶段是完美的。但是,如果您需要这种级别的准确性,那么您也可以考虑使用与C++相同的语法而不是自然语言来实用地表达它。
  • 或者,您也可以将C++概念作为UML中的一种通用类型来处理。然后,您可以在类模板中模板参数的类型定义中以更易读的方式使用该概念。这将更方便阅读,并且更接近C++的想法。问题在于,在UML中没有预见到定义此类通用类型的任何事情。因此,您可以使用and-hoc profile扩展UML以使用«concept» khuôn mẫu。然后,您将定义与类完全相同的概念,使用UML constraints定义约束,并使用UML class templates中的概念。

  • 在这里,第二种方法是什么样的。注意两个概念之间的实现 sự phụ thuộc:
    nhập mô tả hình ảnh ở đây

    关于c++ - 如何在UML类图中绘制C++概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63944197/

    26 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com