C++类中的静态成员和静态成员函数

静态成员

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

class StringBad
{
private:
       static int num_strings;
}

//初始化
int StringBad::num_strings = 0;

注意:

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

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


 

静态成员函数

C++类中的静态成员和静态成员函数

#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 指针。

原文链接: https://www.cnblogs.com/xumaomao/p/12912985.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++类中的静态成员和静态成员函数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/349233

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午5:35
下一篇 2023年3月2日 上午5:36

相关推荐