zoukankan      html  css  js  c++  java
  • 第26课.类的静态成员函数

    1.静态成员函数

    a.静态成员函数是类中特殊的成员函数(静态成员函数没有隐藏的this参数,不能直接去访问普通的成员函数和成员变量)
    b.静态成员函数属于整个类所有
    c.可以通过类名直接访问公有静态成员函数(变量)
    d.可以通过对象名访问公有静态成员函数(变量)

    静态成员函数的定义:
    直接通过static关键字修饰成员函数

    class Test
    {
    public:
        static void Func1();        //声明
        static void Func2();
    };
    
    int Test::Func2                //定义
    {
        return 0;
    }
    

    eg:

    #include <stdio.h>
    
    class Demo
    {
        int i;
        
    public:
        int getI();            //声明
        static void StaticFunc(const char *s);
        static void StaticSetI(Demo& d, int v);
    };
    
    int Demo::getI()        //定义
    {
        return i;
    }
    
    void Demo::StaticFunc(const char *s)
    {
        printf("StaticFunc: %s
    ", s);    
    }
    
    void Demo::StaticSetI(Demo& d, int v)
    {
        d.i = v;        //成员函数可以直接调用成员变量,就算它是private (注意静态成员函数的特殊性)
    }
    
    int main()
    {
        Demo::StaticFunc("main Begin...");        //通过类名调用
        
        Demo d;
        
        Demo::StaticSetI(d, 10);
        
        printf("d.i = %d
    ", d.getI());
        
        Demo::StaticFunc("main End...");
        
        return 0;
    }
    

    2.静态函数和普通成员函数的区别

    注意:静态成员函数不能直接访问普通的成员函数(变量),只能直接访问静态的成员函数(变量)

    访问普通成员变量(函数):
    a.可以通过对象名来间接访问
    成员变量:

    class t{
    private:
        int member;
    public:
        static int func(t obj){
        //return member;       不可以
        //return this->member; 不可以
        return obj.member;   //可以,通过对象名来访问
        }
    };
    

    成员函数:

    class A
    {
    public:
        static void f1();
        void f2();
    };
    
    void A::f1()
    {
        A a;
        a.f2();
    }
    void A::f2(){};
  • 相关阅读:
    生物信息学常用的在线网站及数据库汇总
    Python入门--6--今天抄袭人家一篇日志--numpy这个
    Perl语言--一些关于赋值、引用的东西
    Python入门--5--列表
    Idea下 调试Spring源代码
    Java OOM出现场景
    分布式事务解决方案
    mybatis generator 根据表生成对应的mapper文件
    签名工具类
    BPMN2.0
  • 原文地址:https://www.cnblogs.com/huangdengtao/p/11847612.html
Copyright © 2011-2022 走看看