首页 > 代码库 > 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的静态变量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。