第26课.类的静态成员函数

故事扮演 提交于 2019-12-04 08:09: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\n", 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\n", d.getI());
    
    Demo::StaticFunc("main End...");
    
    return 0;
}

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!