zoukankan      html  css  js  c++  java
  • C++类中的静态成员和静态成员函数

    静态成员

    C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供 所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间 的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内

    class StringBad
    {
    private:
           static int num_strings;
    }
    
    //初始化
    int StringBad::num_strings = 0;

    注意:

    1,static 成员变量实现了同类对象间信息共享。

    2,static 成员类外存储,求类大小,并不包含在内。
    3,static 成员是命名空间属于类的全局变量,存储在 data 区。
    4,static 成员只能类外初始化。
    5
    ,可以通过类名访问(无对象生成时亦可),也可以通过对象访问。

    静态成员函数

    #include <iostream>
    using namespace std;
    
    class Student
    {
    private:
        double score;
        static int count;
        static double sum;
    public:
        Student(int s)
        {
            score = s;
            count++;
            sum += score;
        }
        
        static void average();
    };
    
    void Student::average()
    {
        cout<<"average scores: "<<sum / count<<endl;
    }
    
    int Student::count = 0;
    double Student::sum = 0;
    
    int main()
    {
        Student students[5] = {Student(1), Student(2), Student(3), Student(4), Student(5)};
    
        Student::average();
    
        return 0;
    }
    View Cod

    1,静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员, 完成对静态数据成员的封装

    2,静态成员函数只能访问静态数据成员。 原因:非静态成员函数,在调用时this 针被当作参数传进。而静态成员函数属于类,而不属于对象,没有 this 指针。

  • 相关阅读:
    Android学习之天气预报简单版
    Android学习之Json数据的获取与解析
    getPath()返回路径包含的“%20”(空格)的处理
    自学php 之数据库连接编程
    bnuoj 1071 拼图++
    hdu 2489 Minimal Ratio Tree
    hdu 4720 Naive and Silly Muggles
    hdu 4725 The Shortest Path in Nya Graph
    经典算法学习:排序之希尔排序(壳排序)
    经典算法学习:排序之插入排序
  • 原文地址:https://www.cnblogs.com/xumaomao/p/12912985.html
Copyright © 2011-2022 走看看