C++(static)静态成员变量与(static)静态成员函数

一.类的静态数据成员

    1    在Human.h文件

class Human{
    public :
        Human();
        ~Human();
    private:
        int age;
        int salre;
        
        //HumanCount统计人数
        static int HumanCount;    //静态数据成员属于所有实例化对象
}


        在Human.cpp文件

#include"Human.h"

//静态数据成员类外初始化

int Human::HumanCount=0; 

    Human::Human(){
  
        HumanCount++;

    }
}
对于非const的类静态成员,只能在类的实现的文件中初始化。
const类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值。(但是不要同时在这两个地方初始化,只能初始化一次)。

 二.静态成员函数

        在Human.h文件

class Human{
    public :
        Human();
        ~Human();
        static int getHumanCount();    //静态成员函数
    private:
        int age;
        int salre;
        
        //HumanCount统计人数
        static int HumanCount;    //静态数据成员属于所有实例化对象
}


         在Human.cpp文件

#include"Human.h"

int Human::getHumanCount(){

    return HumanCount;
}

         使用类的静态成员函数

//调用静态成员函数

//1.可以利用实例对象使用

Human h1;
cout<<h1.getHumanCount()<<endl;

//2.可以直接利用类来使用
cout<<Human::getHumanCount()<<endl;     //静态数据成员不可以通过类名访问

//ERROR: Human::HumanCount;

1.静态数据成员不能被类直接访问,ERROR: Human::HumanCount;

2.静态成员函数不能直接访问this指针对象的数据成员(非静态属性),只能访问静态数据    成员(类的成员)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值