t() 中 f() 是待决名,会延迟到实例化时再进行无限定名字查找,所以会查找到 X<T>::f() t2() 中 f() 不是待决名,所以会在定义时进行无限定名字查找,并且由于基类的类型取决于模板形参 T 所以不会查找基类,所以会查找到 ::f()