静态数据成员和静态成员函数

  • 类的静态数据成员:
    对于非 const 的类静态成员,只能在类的实现文件中初始化。
    const 类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值。(但是不能同时在这两个地方初始化,只能初始化 1 次)
  • 静态成员函数:
    可以直接通过类来访问,也可以通过对象来访问
    在类的静态成员函数中,不能访问普通数据成员和普通成员函数,(即不能直接访问this指针和对象的数据成员,只能访问类的数据成员)
#include <iostream>
using namespace std;

class Student
{
public:
    Student()
    {
        count++;
    }
    ~Student()
    {
        count--;
    }
    int getCount()
    {
        return count;
    }
    static int getCount1()  // 静态成员函数
    {
        return count;
    }
private:
    static int count;          // 静态数据成员
    static const int num = 5;  
};

//初始化类的静态数据成员
int Student::count = 0;

void test()
{
    // 类的静态成员函数可以直接通过类来访问,也可以通过对象来访问
    cout << Student::getCount1() << endl;
}

int main()
{
    Student s1;
    cout << s1.getCount() << endl;
    test();
    return 0;
}

image

posted @ 2022-04-28 23:26  荒年、  阅读(70)  评论(0编辑  收藏  举报