码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 静态

时间:2019-11-16 23:31:56      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:占用   turn   通过   初始化   对象引用   out   lock   静态成员初始化   共享   

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

C++ 静态

标签:占用   turn   通过   初始化   对象引用   out   lock   静态成员初始化   共享   

原文地址:https://www.cnblogs.com/wuyanzu/p/11874380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!