c ++ 继承与静态成员

52 阅读1分钟
class Base
{
private:
 /* data */
public:
 static void statmen();
 Base(/* args */);
    ~Base();
};


class Derived:public Base{
 void f(const Derived&);
};


void Derived::f(const Derived &derived_obj)
{
    Base::statmen();    //正确: Base定义了statmen
    Derived::statmen(); //正确: Derived继承了statmen
 //正确:派生类的对象能访问基类的静态成员
    derived_obj.statmen();  //通过Derived对象访问
 statmen();  //通过this对象访问
}
Base::Base(/* args */)
{
}


Base::~Base()
{
}

派生类的声明

class Bulk_quote : public Quote; //错误:派生列表不能出现在这里
class Bulk_quote; // 正确:声明派生类的正确方式

被用作基类的类

class Quote; //声明但未定义
//错误:Quote 必须被定义
class Bulk_quote : public Quote {……};

防止继承的发生

即在类名后跟一个关键字 final