《C++Primer中文版第5版》第15章P532继承与静态成员
发现问题
如果基类定义了一个静态成员(static),则在整个继承体系中只存在该成员的唯一定义。不论从基类派生出多少个派生类,对于每个静态成员来说都只存在唯一的实例。
代码如下:
class Base{
public:
static void statemem();
};
class Derived : public Base{
private:
void f(const Derived&);
};
void Derived::f(const Derived& derived_obj){
Base::statemem(); // 正确:Base定义类statemem
Derived::statemem(); // 正确:Derived继承了statemem
derived_obj.statemem(); // 通过Derived对象访问
statemem(); // 通过this对象访问
}
书中写到:
假设某静态成员是可访问的,则我们可以通过基类使用它也能通过派生类使用它。
编写的源文件如下:
这段代码没有错误吗?我在Ubuntu环境下运行时,报错如下:
这是为什么呢?