首页 > 代码库 > C++学习之路: 关于class的静态变量

C++学习之路: 关于class的静态变量

引言: 在定义类的时候,有时我们有一种需求想让 一个类的所以对象共用一个变量, 例如全体中华人民共和国公民共用一个人口总数, 我们都是中国公民, 但是我们国家的人口总数,是我们共有的。

 

由此我们引出了类中的static 静态变量, 它和 类体外的静态变量时有一些小小的区别的。

 1 #include <iostream> 2 #include <string> 3 #include <vector> 4 using namespace std; 5  6 class Test 7 { 8     public: 9         Test()10         {11             count++;        12         }13 14         ~Test()15         {16             count--;17         }18 19         static void print()20         {21             cout << "当前对象个数: " << count << endl;22         }23     private:24         static int count; //表示对象的个数25 };26 27 int Test::count = 0;28 29 int main(int argc, const char *argv[])30 {31     Test::print();32     Test t1;33     t1.print();34     Test t2;35     t1.print();36     t2.print();37     38     return 0;39 }

像我们代码中的static int count,首先它是class的private成员,不是所有用户都可以访问的,是私有的。

它是静态的,属于所有对象共同所有, 就像班级的篮球一样, 所有人都拥有它,但是却不是独享的。 当其中一个对象对其进行count++时,其他对象的count也会自增1;

1 当前对象个数: 02 当前对象个数: 13 当前对象个数: 24 当前对象个数: 2

打印结果,证实了我们的猜想。

 

C++学习之路: 关于class的静态变量