只听过,模板类,非类型形参,非模板类和非类模板类应该是指不是模板类的普通类吧模板是以template开始命名的函数或者类,比如template class A{T a;} 表示声明一个名称为A的模板类,其中的参数T是模板形参,他可以是int, float, char等,具体是什么类型,在类A创建对象的时候决定。比如 A m;声明一个模板形参为int的类A的对象m,这时类A中的T a;中的a就是int型;同理A n;表示声明一个模板形参为float的对象n非类型形参,指的是模板中的模板形参不是使用class关键字定义的,而是使用C++内置类型定义的形参,比如template class B{},其中的形参a就是非类型形参,他是使用的内置类型int声明的。同理函数模板也必须以template关键字开始,比如template void g(T a){}等。注意:非类型模板形参一般不能用于模板函数中,当然你也可以使用没有强制规定