我对C ++并不陌生,但我也没有使用它进行过多次编码。我最近遇到的代码有"<>"在变量声明中。这是它的外观
MyClass<> *instancePtr;
我确定它与模板有关,但我无法在线找到任何内容。任何人都可以帮我解决这个问题吗?代码是什么意思?
感谢任何帮助, 感谢。
答案 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;
即使所有模板参数都有默认参数。 (一些较旧的编译器支持这种不正确的用法。)