0

我想知道以下几点:

在 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"

是否可以继承这样的函数并让它使用覆盖的数据成员?

4

1 回答 1

0

是的,但这不是“压倒一切”,它实际上是“隐藏”。该类可以访问它自己的私有成员,并且它的数据成员隐藏在基类中使用相同名称的声明。

于 2013-07-29T00:10:06.727 回答