我想知道以下事项:
在static.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"
是否可以继承这样的函数并让它使用被覆盖的数据成员?
答案 0 :(得分:0)
是的,但这不是'覆盖',实际上是'隐藏'。该类可以访问自己的私有成员,其数据成员使用基类中的相同名称隐藏声明。