// PL9/staticdata.cpp // Example using static data members // Niels Walet, Last modified 03/02/2020 #include<iostream> class my_class { private: int x{}; static int n_objects; public: my_class() : x{} {n_objects++;} my_class(int x_in) : x{x_in} {n_objects++;} ~my_class() {n_objects--;} void show() {std::cout<<"x="<<x<<", n_objects="<<n_objects<<std::endl;} }; int my_class::n_objects{}; // define static data member outside class! void test() { my_class a3{3}; a3.show(); } int main() { my_class a1{1}; a1.show(); my_class a2{2}; a2.show(); test(); a1.show(); return 0; } |