0
  template<int32_t ID= 0, class ID_TYPE = int32_t>
  class Event {
  public:
      typedef ID_TYPE type;
      typedef Event<ID, ID_TYPE> event_obj_type;
   .....  
}

このコードについて、「Event<ID, ID_TYPE>」はどういう意味ですか? クラス名に <> が付いていますが、これは見たことがありません。誰でも私を啓発できますか?ありがとう

4

2 に答える 2

3

おそらく、関数テンプレートに精通しているでしょう。これ:

Event<ID, ID_TYPE> 

クラステンプレートです。関数テンプレートのインスタンス化とは異なり、関数自体の引数は、コンパイラがテンプレートの型引数を推測するのに役立ちますが、クラス テンプレートでは、テンプレートの型を (山かっこで) 明示的に渡す必要があります。

C++ テンプレートのばかガイド - パート 1

于 2013-09-24T15:56:29.167 に答える