zoukankan      html  css  js  c++  java
  • c/c++ static关键字

    static关键字

    1,static 成员变量

    • static 成员变量不随着对象的创建而开辟内存空间。也就是说,不管从哪个对象去看static成员变量,都是一样的。

    2, static 成员方法

    • static 成员方法里不可以调用非static 成员方法。
    • 非static 成员方法里可以调用static 成员方法。

    原因:非static 成员方法里是没有this指针的,所以在里面调用非static 成员方法时,无法传递this指针。static 成员方法不需要this指针。

    重点:初始化static成员变量,要在类的外面。

    #include <iostream>
    using namespace std;
    
    class Test{
      friend void fun(const Test &t);
    public:
      Test(int d = 0) : data(d){
        count++;
      }
      ~Test(){
        count--;
      }
    private:
      int data;
      static int count;
    };
    
    void fun(const Test &t){
      cout << t.data << endl;
      cout << Test::count << endl;
    }
    
    //初始化static成员变量 
    int Test::count = 0;
    
    int main(){
      //int Test::count = 0;//编译不过,必须在外面初始化static成员变量
      //Test::count = 0;//编译不过,必须在外面初始化static成员变量
      Test t(10);
      fun(t);
      Test t1(11);
      fun(t1);
    }
    
  • 相关阅读:
    noi.ac 集合
    NOI2019 SX 模拟赛 no.5
    带花树草解
    UR#13 SRAND
    【51nod1847】 奇怪的数学题
    ●POJ 3237 Tree
    ●BZOJ 2049 [Sdoi2008]Cave洞穴勘测
    ●BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊
    ●POJ 2983 Is the Information Reliable?
    ●POJ 3378 Crazy Thairs
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/9505284.html
Copyright © 2011-2022 走看看