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

问题描述 投票:0回答:3

我是 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
访问静态变量?

c++ static-members
3个回答
2
投票

您应该在基类中将

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


1
投票

只需使用它,因为它是派生类的成员。

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

0
投票

您可以像这样从派生类访问变量:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.