33 C++基础-静态成员变量与静态成员函数

1.静态成员

以 static 开头,为各个对象所共有。

定义类时就为了静态数据成员分配空间,不随着对象的建立而分配空间

引用方法:
- 类名::静态成员
- 对象名:静态成员

    CTime mCTime;
    // 类名::静态成员
    CTime::getNum();
    // 对象名:静态成员
    mCTime.getNum();

在类内的静态数据成员仅仅是对该成员的声明,同时还需要再类外部进行定义

2.静态成员函数

在声明成员函数是在函数钱添加static关键字

静态成员函数一般是为了处理静态的数据成员

与一般成员函数区别,非静态函数有this指针,静态成员函数没有this指针。

由于静态成员可以在未定义类对象就可以引用,因此静态成员函数不能访问本类中的非静态成员变量

3.demo

  • 头文件
#ifndef TIME_H
#define TIME_H
class CTime {

public:
    CTime();
    static int getNum();
private:
    static int m_nNum;
};

#endif
  • 初始化静态成员变量
#include "Time.h"

CTime::CTime() {
    m_nNum ++;
}

int CTime::getNum() {
    return m_nNum;
}

// 初始化静态成员变量
int CTime::m_nNum = 0;
  • 调用
#include <iostream>
#include "Time.h"

using namespace std;

int main() {

    CTime mCTime;
    // 类名::静态成员
    CTime::getNum();
    // 对象名:静态成员
    mCTime.getNum();

    cout<<mCTime.getNum()<<endl;
    cout<<CTime::getNum()<<endl;

    return 0;
}

猜你喜欢

转载自blog.csdn.net/su749520/article/details/80322839