Bootstrap

c++静态类实现

废话不多说,先上代码:

静态类 View.h文件代码:

static class  View
{
private:
    static Student  student;
public:

    static int much ;
    static void  addStudent();

};

view.cpp 实现代码:

Student View::factor;
int View::much = 0;
//必须要有的静态成员实现代码

void View::addStudent() {
    Student st1;
    factor.add(st1);
    //此处静态成员不能使用 this->
}

主函数 main 外部调用


#include "View.h"


int main()
{
    View::addStudent();
    //静态函数调用是可采用此方法
    return 0;
}

注:

  • 静态类所必须的初始化在类外进行(不应在.h文件内实行),而前面不加static,以免与外部静态变量(对象)相混淆。

  • 初始化时不加该成员的访问权限控制符private,public等。

  • 初始化时使用作用域运算符来标明它所属类,静态数据成员是类的成员(而不是对象的成员,因没有对象)。

  • 静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。

  • 不能再实现中使用this关键字因为它已经实例化,开辟了内存

  • 调用时,标明所属静态类(也可以像math类采用命名空间,没有命名冲突)

;