C++如何访问派生类中的基类静态成员
C++ how to access base class static members in derived class?
我是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;
}
您需要使用基类的名称,因为变量是静态的,并且您可以访问它,因为它是受保护的。
正如这里和这里所解释的,在某些情况下,不允许从派生类访问类的受保护成员的额外检查不适用于静态成员。
相关文章:
- 如何基于模板化类的基类专门化成员函数
- 继承:调用基类的成员和方法
- 将基类的成员函数重载到其他派生类C++
- C++ 使用派生类方法更改基类数据成员
- C++模板类静态成员初始化
- 派生类不能用另一个基类的成员重载基类中的私有成员
- 基类私有成员属于派生类的哪个部分?
- 不能从派生类中获取基类的成员. C++
- 声明和定义类静态成员变量不会导致多重声明,这是为什么?
- 如果类包含基类的成员,编译器是否可以利用空基优化?
- 类静态成员的冲突声明
- 如果基类没有成员,派生类C++的大小是多少?
- 友元类对象是否可以在其成员函数中访问派生类对象的基类私有成员?
- 如何在类静态成员中引用静态变量?
- C++类静态成员函数调用错误
- C ++中有没有办法让派生类重写基类静态方法
- 设备代码中的CUDA类静态成员的成语
- C++如何访问派生类中的基类静态成员
- 我需要通过基类静态变量访问派生类成员
- 基类静态引用数据成员上的C++对象切片行为的奇怪案例