static、const、static const类成员变量初始

2021-03-28  本文已影响0人  突击手平头哥

static、const、static const类成员变量初始化

const修饰的是常量,在超过作用域时会被释放;static修饰的是静态变量,对于类来说静态成员是属于整个类的。

static、const的初始化

class Test_Class_A {
public:
    Test_Class_A():const_var(1){
        cout << "这是构造函数" <<endl;
    }
    const int const_var;
    static int static_var;
};

int Test_Class_A::static_var = 2;

int main()
{

    return 0;
}

static const初始化

staic const和const static意义是一样的;假设期望定义一个所有类实例中恒定的量,就需要用到这个关键字了

using namespace std;

class Test_Class_A {
public:
    Test_Class_A():const_var(1){
        cout << "这是构造函数" <<endl;
    }
    const int const_var;
    static const int static_var;
};

const int Test_Class_A::static_var = 2;     //定义+初始化

int main()
{

    return 0;
}

static const应当被看作是恒定的静态变量,因为其存储架构和static是一致的

类声明中初始化

在C++较高的版本中是支持在类的声明中直接定义变量的

#include <stdio.h>
#include <stdlib.h>
#include <typeinfo>
#include <vector>
#include <iostream>

using namespace std;

class Test_Class_A {
public:
    Test_Class_A():const_var(1){
        cout << "这是构造函数" <<endl;
    }
    const int const_var;
    static const int static_var = 0;
};


int main()
{
    cout << Test_Class_A::static_var << endl;
    //cout << &Test_Class_A::static_var <<endl; 报错
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读