• 抽象类(纯虚函数)


    抽象类:有纯虚函数的类

    纯虚函数:在虚函数的形参列表右边写上=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;
    }
  • 相关阅读:
    枚举enum
    C# 位运算符
    运算符&和&&以及|和||区别比较
    LINQ TO JSON
    LINQ 随机排序
    .NET Core LinQ
    CSharp笔记>>>多线程
    3D旋转
    CSharp 之CSkin的使用教程
    CSharp笔记>>>多语言,注册,模态对话框返回值
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12767858.html
Copyright © 2020-2023  润新知