zoukankan      html  css  js  c++  java
  • c++ 静态成员

    静态成员的需要性:

       有些属性是类中所有对象共有的。

        如果放在全局变量中,则它们在类的外边,既不安全,又影响了重用性。

    使用:

        像成员有数据成员和成员函数之分一样,静态成员也有静态数据成员和静态数据成员函数之分,静态成员用“static”声明。

    eg:多文件程序实现结构

    //student.h的定义
    
    class Student
    
    {
    
      public:
    
        Student(char *pName="no name");
    
        ~Student();
    
        static int number();//静态成员函数
    
       protected:
    
         static int noOfStudents;
    
         char name[40];
    
    };
    
    //student.cpp 类的实现文件
    
    #include <iostream.h>
    
    #include <string.h>
    
    #include "student.h"
    
    int Student::noOfStudents=0;//在类的内部实现中分配空间和初始化
    
    Student::Student(char *pName)
    
    {
    
       cout<<"creat one student\n";
    
      strcpy(name,PName);
    
       noOfStudents++;
    
    cout<<noOfStudents<<endl;
    
    }
    
    Student::~Student()
    
    {
    
    cout<<"destruct one student\n";
    
    noOfStudents--;
    
    cout<<noOfStudents<<endl;
    
    }
    
    int Student::number()
    
    {
    
    return noOfStudents;
    
    }
    
    //mian.cpp主程序
    
    #include "student.h"//重用Student类
    
    #include <iostream.h>
    
    void fn
    
    {
    
        Student s1;
    
        Student s2;
    
      cout<<Student::number()<<endl;
    
    }
    
    void main()
    
    {
    
    fn();
    
    cout<<Student::number()<<endl;
    
    }
    
     
  • 相关阅读:
    spring boot-11.全局捕获异常
    spring boot-10.国际化
    spring boot-9.对springMVC的支持
    spring boot-8.静态资源映射
    spring boot-7.日志系统
    spring boot-6.profile 多环境支持
    spring boot-4.配置文件
    spring boot-3.原理探究
    【C/C++】产生随机数
    【C/C++】获取当前系统时间
  • 原文地址:https://www.cnblogs.com/flashweb/p/2810919.html
Copyright © 2011-2022 走看看