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

fla*_*urn 2 c++ syntax

我不是C++的新手,但我也没有使用它编写太多代码.我最近遇到了变量声明中包含"<>"的代码.这是它的外观

MyClass<> *instancePtr;
Run Code Online (Sandbox Code Playgroud)

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

任何帮助表示赞赏,谢谢.

AnT*_*AnT 10

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

例如,如果模板声明如下

template <typename T = int, typename U = double, int N = 5> class MyClass {
  ...
};
Run Code Online (Sandbox Code Playgroud)

然后

MyClass<> *instancePtr;
Run Code Online (Sandbox Code Playgroud)

相当于

MyClass<int, double, 5> *instancePtr;
Run Code Online (Sandbox Code Playgroud)

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

MyClass *instancePtr;
Run Code Online (Sandbox Code Playgroud)

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