静态成员函数

一个类的静态成员函数只产生一个而无论生成的对象有多少个,且静态函数只能使用静态成员

一段代码就能说明:

#include<iostream>
#include<string>
using namespace std;
class test{
    public:
        static void fun(){
            cout<<"fun() "<<i<<endl;
            //cout<<name<<endl;//静态函数使用非静态成员编译错误
        }
        void show(){
            cout<<"show() "<<i<<" "<<name<<endl;
        }
        test(string y="...."):name(y){};
    private:
        static int i;
        string name;
};
int test::i=10;//静态成员变量在类外初始化,不加static
int main(){
    test::fun();
    //test::show();//这种方法只适用于静态成员函数,编译错误
    test one("xxxx");
    one.fun();//对象可以使用静态成员函数
    one.show();
    return 0;
}
fun() 10
fun() 10
show() 10 xxxx

你可能感兴趣的:(静态成员函数)