C++静态(static)
和JAVA中的静态差不多
静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。
因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。
使用静态数据成员可以节省内存,不占用内存,只有在实现的时候,才会占用内存
声明静态成员的时候,需要加static关键词
静态成员初始化,需要在实现里初始化,不能再头文件里初始化
静态不能被const修饰,否则编译错误
class StaticTest { public: StaticTest(int a, int b, int c); void GetNumber(); void GetSum(); static void f1(StaticTest &s); //静态函数 private: int A, B, C; static int Sum; //静态成员数据 }; #include "StaticTest.h" #include <iostream> using namespace std; int StaticTest::Sum = 0;//静态成员在此初始化 StaticTest::StaticTest(int a, int b, int c) { A = a; B = b; C = c; Sum += A + B + C; } void StaticTest::GetNumber() { cout << "Number = " << endl; } void StaticTest::GetSum() { cout << "Sum = " << Sum <<endl; } void StaticTest::f1(StaticTest &s) { cout << s.A << endl;//静态方法不能直接调用一般成员,可以通过对象引用实现调用 cout << Sum <<endl; } #include "StaticTest.h" #include <stdlib.h> int main(void) { StaticTest M(3, 7, 10), N(14, 9, 11); M.GetNumber(); N.GetSum(); M.GetNumber(); N.GetSum(); StaticTest::f1(M); system("pause"); return 0; }