类模版:当多个类中只存在数据成员的类型有不同时使用。
类模版的定义使用如下:
template<typename TEST,char c_TEST>class Demo {public: void fun();PRivate:};成员函数如果在类内定义还是和普通的一样去定义。但是如果成员函数要在类外定义,就必须在之前加上:template<typename TEST,char c_TEST>void Demo<TEST, c_TEST>::fun() { }也就是都加上template<typename TEST,char c_TEST>和下面的红色部分。void Demo<TEST, c_TEST>::fun() { }但是要注意的是,在VS2015以及之前的VS版本都不能进行类模版的多文件编译,也就是类模版和类的声明和定义不能分开,只能存在同一个文件中。而且,要注意,即使你的类模版只产生了一个模版类,你也不能像之前一样去使用 类名::静态成员函数 我的认为是,因为这里可能存在类的重载,所以编译器不允许出现这样的调用。因为不知道是调用的哪个类的静态成员函数。
新闻热点
疑难解答