当设计开发一个类的时候,程序员通常需要在类的内部定义一些静态变量。在通常情况下,你会在一个类的头文件中定义一个静态变量并在源代码程序中初始化,如下所示:
// File.h
class File
{
// . . . code
private:
static char DELIMETER;
}
// File.cpp
char File::DELIMETER = "/";
然而,这一方法并不适用于模板类。模板类通常位于头文件中。生成一个原文件并没有太多的用处,因为你不能为所用的模板参数初始化。
然而,C++允许静态函数在模板中操作,而在一个静态函数中,你可以调用一个静态变量。
如下所示:
这一技巧功能非常强大,因为对于Array< int>,你必须提供Array< int>::s_Elements;对于rArray< std::string>,你必须担任 Array< std::string>::s等。
这里你必须完成下面的两个步骤:
下面的范例包含了Array< T>类,这一类在内部里把每一数组定义为类型T。当某一类型被生成或删除时,它会显示出数组元素个数及其类型。