C++静态成员变量和静态成员函数的使用

1.静态成员变量:定义在类中的静态成员,以static关键字初始化

和成员变量区别:a.可以通过类名::变量名进行调用,可访问性还是由(public,private,protected)进行限制  例如下面的

mystaitcClass::_id,protected属性内容无法直接进行访问,若要直接访问需要修改为public

2.静态成员函数:类似可以通过类名::函数名 进行调用

 

#ifndef MYSTAITCCLASS_H
#define MYSTAITCCLASS_H


class mystaitcClass
{
public:
    mystaitcClass();

    static int getID();
protected:
    static int _id;
};

#endif // MYSTAITCCLASS_H

 

#include "mystaitcclass.h"
int mystaitcClass::_id = 1;
mystaitcClass::mystaitcClass()
{

}

int mystaitcClass::getID()
{
    if (_id <= 255 && _id >= 1)
    {
        _id++;
    }
    else
    {
        _id = 1;
    }

    return _id;
}
#include <QCoreApplication>
#include <QDebug>
#include"mystaitcclass.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    mystaitcClass myclass1;
    mystaitcClass myclass2;
    //mystaitcClass::_id
    qDebug()<<myclass1.getID()<<endl;
    qDebug()<<myclass2.getID()<<endl;
    return a.exec();
}

 

注意:静态变量初始化问题

如果头文件被多个文件引用,静态变量不能初始化在头文件中而应在cpp文件中初始化,否则会造成变量重定义

posted @ 2024-10-21 14:47  BangZeng  阅读(10)  评论(0编辑  收藏  举报