C++ 静态

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;
}

猜你喜欢

转载自www.cnblogs.com/wuyanzu/p/11874380.html