是小邹啊

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

抽象类:有纯虚函数的类

纯虚函数:在虚函数的形参列表右边写上=0;

抽象类不可以创建对象,只能声明指针或者引用

抽象类做框架,抽象类只能由子类去创建对象,由子类去实现父类的纯虚函数。

抽象类的纯虚析构函数必须在类内完成。

纯虚函数和虚函数之间的区别:

含有虚函数的类不能称为抽象类,含有纯虚函数的类可以被称为抽象类

虚函数可以直接调用也可以在其子类中使用重载、重写等形式进行调用,而纯虚函数必须在子类中实现才能被调用

class Abstract
{
public:
    string name;
    Abstract()
    {
     cout<<"Abstract()"<<endl;
    }
    Abstract(const string name)
    {
        this->name = name;
        cout<<"Abstract(const string name)"<<endl;
    }
    ~Abstract()
    {
        cout<<"~Abstract()"<<endl;
    }
    virtual void fun() = 0;
    virtual void show() = 0;
};

class Sub:public Abstract
{
public:
    virtual void fun()
    {
        cout<<" virtual void fun()"<<endl;
    }
    virtual void show()
    {
        cout<<" virtual void show()"<<endl;
    }
    Sub()
    {
        cout<<"Sub()"<<endl;
    }

    ~Sub()
    {
        cout<<"~Sub()"<<endl;
    }
};

int main(int argc, char *argv[])
{
    Abstract *abs = new Sub;
    abs->fun();
    Sub s;
    delete abs;
    s.fun();
    s.show();
    cout<<"main() over"<<endl;
}

 

posted on 2020-04-24 15:41  是小邹啊  阅读(541)  评论(0编辑  收藏  举报