C++如何访问派生类中的基类静态成员

C++ how to access base class static members in derived class?

本文关键字:基类 静态成员 派生 何访问 访问 C++      更新时间:2023-10-16

我是c++静态变量的新手。我不知道如何从派生类成员函数访问基类的静态成员。

示例:

#include <iostream>
class base // base class
{
protected:
    static int value;
};
int base::value = 0; // static variable initalization
class derived : public base
{
public:
    get_variable();
};

我知道静态变量是一个类变量。我们只能使用类名来访问它,并且它没有绑定到对象(如果我错了,请纠正我)。我的问题是如何访问派生类get_varible的成员函数中的静态变量访问静态变量。?

您应该在基类中将private更改为protected。您的private static变量只能在base类中访问。

只需将其用作派生类的成员即可。

int derived::get_variable()
{
   return value; 
}

您可以从派生类访问变量,如下所示:

int derived::get_variable()
{
     return base::value;
}

您需要使用基类的名称,因为变量是静态的,并且您可以访问它,因为它是受保护的。

正如这里和这里所解释的,在某些情况下,不允许从派生类访问类的受保护成员的额外检查不适用于静态成员。