
展开全部
只听过,模板类,非类型形参,
非模板类和非类模板类应该是指不是模板类的普通类吧
模板是以template开始命名的函数或者类,比如
template<class T> class A{T a;} 表示声明一个名称为A的模板类,其中的参数T是模板形参,他可以是int, float, char等,具体是什么类型,在类A创建对象的时候决定。比如 A<int> m;声明一个模板形参为int的类A的对象m,这时类A中的T a;中的a就是int型;同理A<float> n;表示声明一个模板形参为float的对象n
非类型形参,指的是模板中的模板形参不是使用class关键字定义的,而是使用C++内置类型定义的形参,比如template<class T, int a> class B{},其中的形参a就是非类型形参,他是使用的内置类型int声明的。
同理函数模板也必须以template关键字开始,比如
template <class T> void g(T a){}等。
注意:非类型模板形参一般不能用于模板函数中,当然你也可以使用没有强制规定
非模板类和非类模板类应该是指不是模板类的普通类吧
模板是以template开始命名的函数或者类,比如
template<class T> class A{T a;} 表示声明一个名称为A的模板类,其中的参数T是模板形参,他可以是int, float, char等,具体是什么类型,在类A创建对象的时候决定。比如 A<int> m;声明一个模板形参为int的类A的对象m,这时类A中的T a;中的a就是int型;同理A<float> n;表示声明一个模板形参为float的对象n
非类型形参,指的是模板中的模板形参不是使用class关键字定义的,而是使用C++内置类型定义的形参,比如template<class T, int a> class B{},其中的形参a就是非类型形参,他是使用的内置类型int声明的。
同理函数模板也必须以template关键字开始,比如
template <class T> void g(T a){}等。
注意:非类型模板形参一般不能用于模板函数中,当然你也可以使用没有强制规定
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询