符号 <> 代表什么?

4
template <class T>
T Bucky<T>::bigger(){
  return (first>second?first:second);
}

在上面的代码中,为什么我们需要在Bucky之前加上<>和::呢?
1个回答

3

函数的类外定义需要指定它所属的类的命名限定符。

很明显,Bucky是一个模板类:

 template<typename T>
 class Bucky {
     T bigger();
 };

完整的限定符是Bucky<T>,因此您必须在函数定义中指定它。
稍作扩展:编译器应该如何区分这个和
 class Bucky {
 };

否则,这是一个不同的类,并且可以同时存在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接