static 成员小记

基类有static成员时,派生类不会额外开辟一个空间存储static成员,而是基类子类公用。

这几天在家休息,一直为退学的事情发愁,最后还是不敢退...

#include <iostream>
using namespace std;
 
class Base
{
public:
    static int a;
    static void print()
    {
        cout << a << endl;
    }
 
    static void set(int number)
    {
        a = number;
    }
};
 
class Derived1 : public Base
{
};
 
class Derived2 : public Base
{
};
 
int Base::a = 100;
 
int main(int argc, char** argv)
{
        // 一下都是输出100
    Base::print();
    Derived1::print();
    Derived2::print();
 
        // 在Base中将a改为99,那么后面的两个输出也将变成99
    Base::set(99);
    Derived1::print();  
    Derived2::print();
 
    return 0;
}
原文地址:https://www.cnblogs.com/cavehubiao/p/3331998.html