請原諒我糟糕的英語。讓我向您展示我試圖在 UML 類圖中繪制的情況。
template<typename TB1, typename TB2, typename TB3>
class Base { ... };
template<typename TD1, typename TD2>
class Derived : public Base<typename TD1, typename TD2, int> { .... };
當一個類繼承泛型類時,我知道如何繪制UML類圖,如下(
它對應于 C 語意。但是 UML 第9.9.3.2 節模板分類器特化為該圖提供了另一種語意:
RedefinableTemplateSignature 重新定義所有作為模板的父分類器的 RedefinableTemplateSignatures。擴展(重新定義)簽名的所有正式 TemplateParameters 都包含為擴展簽名的正式 TemplateParameters,以及為擴展簽名本地指定的任何 TemplateParameters。
我理解這意味著模板引數增加(即集合將是TB1、TB2、和) TB3,并且沒有預見到定義某些父元素的本地系結的語意或符號。所以 UML 讀者可能會誤解設計意圖。TD1TD2
選項 3 - 系結和繼承
因此,最干凈的方法是分解系結和繼承(我使用了一個系結類,該類本身使用新引數名稱進行模板化,但這可能有點過頭了):

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/515588.html
標籤:C 模板微升类图
上一篇:模板類如何決議成員方法
