"Class<>"在C++中的含义是什么?

What is the meaning of "Class<>" in C++?

本文关键字:是什么 Class lt gt C++      更新时间:2023-10-16

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

MyClass<> *instancePtr;

我确信这与模板有关,但我在网上找不到任何东西。有人能帮我吗?代码是什么意思?

感谢任何帮助,谢谢

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

例如,如果模板声明如下

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

然后

MyClass<> *instancePtr;

相当于

MyClass<int, double, 5> *instancePtr;

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

MyClass *instancePtr;

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