7

A< Foo >UML を使用して、次のコードでどのように表現できますか?

template< class T > 
class A : public T
{
    /* ... */
};

class Foo { };

A< Foo > a_foo;

このようなもの (貧弱なアスキー アートをお詫びします... そしてJon Skeetに) が私の最初の推測ですが、正しくないと思います。

            ________________
            |              |
            |              |
            |     Foo      |
            |              |
            |______________|
             /:\  /|\
«bind»(Foo)   :    |
              :    |   .......               
            __:____|___:  T  :
            |          :.....:
            |              |
            |      A       |
            |              |
            |______________|
4

2 に答える 2

2

これが完全に標準かどうかはよくわかりませんが、Enterprise Architect を使用してリバース エンジニアリングを試みたときの「A」クラスの定義は次のとおりです。

      +---------+
+-----| T:class |
|     +---------+
|        T |
|   A      |
+----------+
|          |
+----------+

テンプレート パラメータの名前をクラスの親名として追加するだけです。

于 2013-06-17T21:38:26.497 に答える