我不是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)
即使所有模板参数都有默认参数.(一些较旧的编译器支持这种不正确的用法.)