静态数据成员,静态成员函数

静态数据成员

只有类声明,没有定义对象,则并不会给数据成员分配内存。但是会给static 数据成员分配内存,且不在任一对象内存空间之中,而是单独开辟一段空间,所有的对象都访问同一地址。直到程序结束才会释放内存。

且只能在类外初始化,类似全局变量,不能在main或者其他函数中初始化(初始化引用时,无论是public 或者是private都可以。public:static int a 数据成员可以在类外直接引用bbox::a;

#include <iostream>

using namespace std;
class student {
public:
    static int shu;//静态数据成员,只能在类外赋值
    int han;
public:
    student(int x) {
        shu = x;
        han = 0;
    }

    student(int x, int y) :  han(y) {};

    void output() const {
        cout << shu << " " << han;
    };
};
void func2(const  student *p )
{
    //
    (*p).shu=18;
    (*p).output();
}

int main() {

    student s2(560);
    student ::shu=56;

    return 0;
}

静态成员函数

不能访问非static 数据成员;只能访问static 数据成员

#include <bits/stdc++.h>

using namespace std;
int i=1;
class student {
    int num1;
    int num2;
   static int c;
public:
    static int aver;
    void input() {
        cin >> num1 >> num2;
    }
    void ca()
    {
        aver+=(num2+num1);
    }
};
int student :: c=0;
int student::aver = 0;
int main() {

    student stu[5];
    student *p = stu;
    int i = 1;
    for (p, i; p < stu + 5; p++, i++) {
        p->input();
        p->ca();
    }
    cout<<student::aver;
    return 0;
}

对象数组初始化

    //
student stu5[2]={
    student(12,45),
    student(56,45)
};
全部评论

相关推荐

2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
冰皮月饼_FLORRIEEE:你是准备投产品嘛?可以重新整理一下实习的bulletpoint,侧重描述你的工作所带来的结果收益,不要只写泛泛的内容(比如改写通过xx数据分析,提升xx),产品的价值并不在处理和分析数据的过程
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务