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

静态数据成员

只有类声明,没有定义对象,则并不会给数据成员分配内存。但是会给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)
};
全部评论

相关推荐

我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务