【c++深度解析三】类的静态成员变量和静态成员函数

本文深入探讨了C++中静态成员变量和静态成员函数的特性和应用,通过实例展示如何使用它们来统计类对象的数量,同时保证程序的安全性,避免使用全局变量。

问题一:写一个满足如下需求的程序

1.统计在程序运行期间某个类的对象数目

2、保证程序的安全性(不能使用全局变量

3.随时可以获取当前对象的数目

答:使用静态成员变量解决如上问题

代码如下:

#include <stdio.h>

class A
{
public:
    A()
    {
        m_count ++;
    }

    ~A()
    {
        m_count --;
    }

    static int getCount(){
        return  m_count;
    }

private:
    static int m_count;

};

int A::m_count = 0;

int main(int argc, char *argv[])
{

    A t;
    A t1;
    int count = A::getCount();

    printf("count = %d\n",count);
    A * test = new A;
    count = A::getCount();

    printf("count = %d\n",count);
    delete test;
    count = A::getCount();

    printf("count = %d\n",count);

    return 0;
}

通过上面代码总结下静态成员变量的特性:

1.静态成员变量属于整个类所有

2.静态成员变量的生命周期不依赖于任何对象

3.可以通过类名直接访问公有静态成员变量

4.所有对象共享类的静态成员变量

5.可以通过对象名访问公有静态成员变量

类的静态成员函数的特性:

1.静态成员函数是类中特殊的成员函数

2.静态成员函数属于整个类所有

3.可以通过类名直接访问公有静态成员函数

4.可以通过对象名访问公有静态成员函数

5.静态成员函数没有隐藏的this参数

6.静态成员函数只能直接访问静态成员变量(函数)

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值