“Class<>”是什么意思在C ++中?

时间:2014-09-09 01:44:56

标签: c++ syntax

我对C ++并不陌生,但我也没有使用它进行过多次编码。我最近遇到的代码有"<>"在变量声明中。这是它的外观

MyClass<> *instancePtr;

我确定它与模板有关,但我无法在线找到任何内容。任何人都可以帮我解决这个问题吗?代码是什么意思?

感谢任何帮助, 感谢。

1 个答案:

答案 0 :(得分:10)

这意味着MyClass是一个模板,MyClass模板声明为所有模板参数提供默认参数。

例如,如果模板声明如下

template <typename T = int, typename U = double, int N = 5> class MyClass {
  ...
};

然后

MyClass<> *instancePtr;

相当于

MyClass<int, double, 5> *instancePtr;

请注意,当您引用模板类时,即使<>之间没有任何内容,也始终需要<>。你不能只说

MyClass *instancePtr;

即使所有模板参数都有默认参数。 (一些较旧的编译器支持这种不正确的用法。)