2025年4月7日 星期一 乙巳(蛇)年 正月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++类模板中的静态成员

时间:03-07来源:作者:点击数:324

类模板中可以定义静态成员,从该类模板实例化得到的所有类都包含同样的静态成员。

程序示例如下:

  • #include <iostream>
  • using namespace std;
  • template <class T>
  • class A
  • {
  • private:
  • static int count;
  • public:
  • A() { count ++; }
  • ~A() { count -- ; };
  • A(A &) { count ++ ; }
  • static void PrintCount() { cout << count << endl; }
  • };
  • template<> int A<int>::count = 0;
  • template<> int A<double>::count = 0;
  • int main()
  • {
  • A<int> ia;
  • A<double> da;
  • ia.PrintCount();
  • da.PrintCount();
  • return 0;
  • }

程序的输出结果是:
         1
         1

第 14 行和第 15 行,对静态成员变量在类外部加以声明是必需的。在 Visual Studio 2008 中,这两行也可以简单地写成:

int A<int>::count = 0;
int A<double>::count = 0;

A<int> 和 A<double> 是两个不同的类。虽然它们都有静态成员变量 count,但是显然,A<int> 的对象 ia 和 A<double> 的对象 da 不会共享一份 count。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门