zoukankan      html  css  js  c++  java
  • 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 当前对象个数: 0
    2 当前对象个数: 1
    3 当前对象个数: 2
    4 当前对象个数: 2

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

  • 相关阅读:
    C#之事件
    C#之委托
    CIC许可更新
    HMP许可更新
    知识库上传
    [转]spring中<tx:advice></tx:advice>意义
    [转]spring property标签中的 ref属性和ref 标签有什么不同
    [转] Spring@Autowired注解与自动装配
    [转]SpringMVC入门
    [转]SpringMVC拦截器详解[附带源码分析]
  • 原文地址:https://www.cnblogs.com/DLzhang/p/3986039.html
Copyright © 2011-2022 走看看