在下面的代码中,构造函数后面有<T>
是什么意思?
template<class T>
class foo{
int x;
public:
foo<T>(){ // ??
x=0;
}
};
int main(){
foo<int>* fo = new foo<int>();
}
代码编译成功,没有错误。
我在c ++中对方法和函数声明语法进行了一些搜索,但找不到它的含义。
那么,拥有这样的构造函数以及它应该如何使用意味着什么呢?
答案 0 :(得分:3)
可以使用以下(C ++ 11,12.1)声明构造函数:
foo
)foo<T>
)此外,C ++ 11 14.6.1 / 3表示“类模板或类模板特化的注入类名称可以用作模板名称或< em> type-name 无论在哪个范围内。“
所以任何一种形式都没问题。