为什么the following code不起作用?
class A
{
static void Method() { std::cout << "method called."; }
};
class B : public A
{
// Has a bunch of stuff but not "Method"
};
int main()
{
B::Method();
}
我知道我可以通过在B中添加以下内容来使其工作,但如果不需要这样做会很好,特别是如果有几个派生自A的类。
static void Method() { A::Method(); }
答案 0 :(得分:4)
默认情况下,使用class
键声明的类的成员是私有的。要公开它们,你必须说:
class A
{
public:
// ^^^^^^^
static void Method() { cout << "method called."; }
};