1/静态变量x将被StaticDemo类的所有对象共享,例如:StaticDemoobjl,obj2;objl.putx(5);objl.puty(10);obj2.puty(20);cout<<"x: "<< objl.getx(0) <<" " << obj2.getx0) << endl ;cout <<"y: "<< objl.gety() <<" "<< obj2.gety0) << endl ;
// 静态变量x将被StaticDemo类的所有对象共享,例如: StaticDemo obj1, obj2 ; obj1.putx(5) ; obj1.puty( l0 ) ; obj2.puty(20 ) ; cout << "x: "<< obj1.getx( ) << " " << obj2.getx( ) << endl ; cout << "y: "<< obj1.gety( ) <<" "<< obj2.gety( ) << endl ;
静态函数成员4.1.2静态函数成员是类中的一个函数,有static修饰。静态函数成员和静态数据成员类似,在对象生成之前也已经存在。这就是说在对象产生之前,静态的函数成员就能访问其它静态成员。类外代码可以使用类名和作用域操作符来调用静态成员函数。静态成员函数只能引用属于该类的静态数据成员或静态成员函数。见例【例4-2】
7 4.1.2 静态函数成员 – 静态函数成员是类中的一个函数,有static修饰。 – 静态函数成员和静态数据成员类似,在对象生成 之前也已经存在。这就是说在对象产生之前,静 态的函数成员就能访问其它静态成员。 – 类外代码可以使用类名和作用域操作符来调用静 态成员函数。 – 静态成员函数只能引用属于该类的静态数据成员 或静态成员函数。见例【例4-2】
办公室预算子公司1预算公司总预算子公司2预算子公司3预算子公司4预算
公 司 总 预 算 办公室预算 子公司1预算 子公司2预算 子公司3预算 子公司4预算
// budget2.h文件的内容。class Budgetstatic float corpBudget;float divBudget;public:Budget(){ divBudget=O;voidaddBudget( float b)divBudget += b;corpBudget += divBudget;人voidstaticmainOffice(float);floatgetDivBudget()return divBudget;floatgetCorpBudget( return corpBudget;)7
// budget2.h文件的内容 。 class Budget { static float corpBudget; float divBudget; public: Budget( ) { divBudget = 0; } void addBudget( float b) { divBudget += b; corpBudget += divBudget; } static void mainOffice( float ); float getDivBudget( ) { return divBudget; } float getCorpBudget( ){ return corpBudget;} };
//Contents of budget2.cpp#include"budget2.h"floatBudget::corpBudget=O;// Definition of static memberfunctionvoid Budget::mainOffice(float moffice)corpBudget +=moffice;
// Contents of budget2.cpp #include "budget2.h" float Budget::corpBudget = 0 ; // Definition of static member function. void Budget::mainOffice(float moffice) { corpBudget += moffice; }