template <class T> T Bucky<T>::bigger(){ return (first>second?first:second); } 在上面的代码中,为什么我们需要在Bucky之前加上<>和::呢?
函数的类外定义需要指定它所属的类的命名限定符。 很明显,Bucky是一个模板类: template<typename T> class Bucky { T bigger(); }; 完整的限定符是Bucky<T>,因此您必须在函数定义中指定它。 稍作扩展:编译器应该如何区分这个和 class Bucky { }; 否则,这是一个不同的类,并且可以同时存在。