静态成员(static)和非静态成员的初始化有比较大的区别,所以这里单独成章。

静态成员初始化:

一,静态变量:

#include <iostream>
using namespace std;
class Ctest
{
public:
    static int a;
};
int Ctest::a = 12;
int main()
{
    cout << Ctest::a << endl;
    Ctest ct;
    cout << ct.a << endl;
    return 0;
}

结果:

wKiom1kOlhWjuke1AAAYRISmc3M735.png-wh_50

注意点:

①,静态变量的初始化只能在类外进行,不能使用参数列表进行初始化。

②,其调用方案有2种:

        1,类名作用域 : Ctest::a

        2,对象调用: Ctest ct; ct.a

③,内外初始化需要加带变量类型名 : int Ctest::a = 12 。需要将int加上。


二,静态常量×××参数

#include <iostream>
using namespace std;
class Ctest
{
public:
    static int a;
    static const int b = 18;
};
int Ctest::a = 12;
int main()
{
    cout << Ctest::b << endl;
    Ctest ct;
    cout << ct.b << endl;
    return 0;
}

结果:

wKiom1kOmSPALLVkAAAWP6gK5Vs885.png-wh_50


静态方法:

#include <iostream>
using namespace std;
class Ctest
{
public:
    static int a;
    static const int b = 18;
    static void fun1()
    {
        cout << "静态函数" << endl;
    }
};
int Ctest::a = 12;
int main()
{
   Ctest::fun1();
    Ctest ct;
    ct.fun1();
    //cout << ct.b << endl;
    return 0;
}

结果:

wKiom1kOmirydOzIAAAWc0HiyZU552.png-wh_50