C++入门--静态成员变量/函数


静态成员变量:

1、要单独的把实现写在类外(cpp)

2、默认会用0对该成员进行初始化

3、静态成员变量是同一个类的不同对象共用的

4、本质上是一个带类域的全局变量(CInterger::m_static = 1;)

#include <iostream>
#include <string>
using namespace std;

class CInterger {
   public:
    CInterger(int nNumber) : m_nNumber(2) { m_nNumber = nNumber; }
    void SetNumber(int nNumber) { m_nNumber = nNumber; };
    static int m_nStatic;

   private:
    int m_nNumber;
}; 

int CInterger::m_nStatic;  //在类外(cpp)单独声明是哪一个类的静态成员

int main(int argc, char const *argv[]) {
    CInterger i(1);
    i.m_nStatic = 2;
    return 0;
}

  

静态成员函数:

1、在头文件的函数名前面加上关键字static

2、函数内部不能访问普通成员变量,只能访问静态成员变量

3、本质:静态成员函数中没有this指针,因此不能通过this指针访问到对象的普通成员变量

4、静态成员函数实际上就是带类域的全局函数

5、静态函数可以作为线程回调函数的声明

原文地址:https://www.cnblogs.com/y4247464/p/13825700.html