请问下面这个变量m是什么类型?NOTIFICATION 是一个 struct
class EventSensor;
EventSensor<NOTIFICATION> m;
PHPz2017-04-17 15:38:14
EventSensor がクラス テンプレートの場合 (指定した宣言はクラス テンプレートの宣言ではありません)。変数宣言 EventSensor<NOTIFICATION> m;
は、NOTIFICATION をテンプレート パラメーターとして特殊化したクラスのインスタンス m を宣言します。このクラスは「EventSensor<NOTIFICATION>」と呼ばれます (C++ 標準ではこのように呼ばれます)。
つまり、変数 m の型は EventSensor<NOTIFICATION>
です。
テンプレート引数が提供されるか、関数およびクラス (C++17 以降) テンプレートのみの場合に推定される場合、それらはテンプレートの特殊化、つまり を取得するためにテンプレート パラメーターに置き換えられます。特定の型 または特定の関数の左辺値
cppreference、テンプレートから引用
ringa_lee2017-04-17 15:38:14
はい、<NOTIFICATION> はクラス EventSensor 内の変数のタイプですが、クラスが定義され、NOTIFICATION でインスタンス化される場合は汎用です。
伊谢尔伦2017-04-17 15:38:14
m は EventSensor
<NOTIFICATION> 型で、これはクラス内で使用される変数の型、つまり m の変数の型です。
として
mStrList は ArrayList 型です
の要素 s=mStrList.get(1) の型は String です。