溫馨提示×

c++ base類的靜態成員變量使用

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

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

下面是一個簡單的例子,展示了如何在基類中定義靜態成員變量,并在派生類中使用它:

#include<iostream>

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

// 靜態成員變量定義和初始化
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;

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

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

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

    return 0;
}

輸出結果:

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

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女