在类的头文件中保存静态变量

ZDNet软件频道 时间:2003-01-08 作者:BUILDER.COM |  我要评论()
本文关键词:cpptips
当设计开发一个类的时候,程序员通常需要在类的内部定义一些静态变量。在通常情况下,你会在一个类的头文件中定义一个静态变量并在源代码程序中初始化。

当设计开发一个类的时候,程序员通常需要在类的内部定义一些静态变量。在通常情况下,你会在一个类的头文件中定义一个静态变量并在源代码程序中初始化,如下所示:

// 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。当某一类型被生成或删除时,它会显示出数组元素个数及其类型。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134