c++ base類的靜態(tài)成員變量使用

c++
小樊
86
2024-09-04 18:45:07
欄目: 編程語言

在C++中,基類(base class)的靜態(tài)成員變量可以被派生類(derived class)訪問和修改。靜態(tài)成員變量是屬于類的,而不是屬于某個(gè)特定對(duì)象的。因此,它們?cè)趦?nèi)存中只有一個(gè)副本,可以通過類名直接訪問,也可以通過對(duì)象訪問。

下面是一個(gè)簡(jiǎn)單的例子,展示了如何在基類中定義靜態(tài)成員變量,并在派生類中使用它:

#include<iostream>

// 基類
class Base {
public:
    static int staticVar; // 靜態(tài)成員變量聲明
};

// 靜態(tài)成員變量定義和初始化
int Base::staticVar = 0;

// 派生類
class Derived : public Base {
public:
    void printStaticVar() {
        std::cout << "Static variable value in Derived class: "<< staticVar<< std::endl;
    }
};

int main() {
    Base baseObj;
    Derived derivedObj;

    // 通過基類對(duì)象訪問靜態(tài)成員變量
    baseObj.staticVar = 10;
    std::cout << "Static variable value in Base class: "<< baseObj.staticVar<< std::endl;

    // 通過派生類對(duì)象訪問靜態(tài)成員變量
    derivedObj.printStaticVar();

    // 通過類名訪問靜態(tài)成員變量
    Base::staticVar = 20;
    std::cout << "Static variable value in Base class: "<< Base::staticVar<< std::endl;
    derivedObj.printStaticVar();

    return 0;
}

輸出結(jié)果:

Static variable value in Base class: 10
Static variable value in Derived class: 10
Static variable value in Base class: 20
Static variable value in Derived class: 20

從輸出結(jié)果可以看到,無論是通過基類對(duì)象、派生類對(duì)象還是類名訪問靜態(tài)成員變量,都能正確地獲取和修改它的值。這說明靜態(tài)成員變量在基類和派生類之間是共享的。

0