zoukankan      html  css  js  c++  java
  • 抽象类(纯虚函数)

    抽象类:有纯虚函数的类

    纯虚函数:在虚函数的形参列表右边写上=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;
    }
  • 相关阅读:
    原型设计
    案例分析
    编程作业
    《构建之法》阅读任务
    2021.3.11 准备工作随笔
    课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周
    第十一周课程总结
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12767858.html
Copyright © 2011-2022 走看看