继承的静态函数能否访问重写的静态专用数据成员
Can an inherited static function access an overridden static private data member?
我想知道以下内容:
静态.h:
class Base
{
private: static const char* className;
public: static const char* getClass() { return className; };
};
class Sub : public Base
{
private: const static char* className;
};
在static.cpp中:
#include "static.h"
#include <iostream>
const char* Base::className = "Base";
const char* Sub ::className = "Sub";
int main() { std::cout << Sub::getClass(); }
// outputs "Base"
是否可以继承这样的函数并使其使用重写的数据成员?
是的,但这不是"覆盖",实际上是"隐藏"。类可以访问自己的私有成员,其数据成员在基类中使用相同名称隐藏声明。
相关文章:
- 静态数据成员模板专用化的实例化点在哪里
- 如何为静态常量模板化专用整数值分配存储
- 静态数据成员的模板专用化
- 从部分专用模板方法调用模板非静态方法
- 如何从具有专用化的类模板定义静态成员变量?
- 静态声明专用类的接口指针数组
- GCC vs CLANG:除了静态强制转换时在未使用的模板专用化中解析外,否
- 静态 constexpr 模板成员在专用时提供未定义的引用
- 模板专用化与静态函数模板
- 类型为专用数据成员的静态成员
- 部分专用化和静态成员
- 模板专用化和静态成员初始化
- c++ 如何初始化部分模板专用化的静态变量
- 使用g++编译时静态函数的模板专用化
- 将静态(_I)弃用模板专用化
- 模板的非静态成员可以专用于数据或函数吗
- 模板化子类和模板化基类的静态成员专用化
- 专用于静态 constexpr 数据成员
- 热以初始化专用模板代码中的静态 const 成员
- 继承的静态函数能否访问重写的静态专用数据成员