基类有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; }