你就这样记着,template从他后面第一个左花括号,管到这个左花括号对应的右花括号为止。templateclass Num{ ……//不管这个类有多少个成员,有多少个带T或不带T的成员。 };//template管到这里为止。 T MaxT(T a,T b)//从这里开始,没人管,于是就会出现未定义的“T” { return a+b; }而这里:templateT MaxT(T a,T b){ return a+b;}//template管到这里结束。class Num//从这里开始虽然没有template管,但是class Num里面根本没有涉及任何T参数,自然就没有错。{};