美文网首页
2018-01-28 高级多态(一)

2018-01-28 高级多态(一)

作者: 辣么大大大大 | 来源:发表于2018-01-28 13:17 被阅读0次

    纯虚函数

    纯虚函数是必须在派生类中重写的虚函数。通过将虚函数初始化为0来将其声明为纯虚的。
    派生类重写所有虚函数,否则它也是ADT。

    virtual void draw() = 0;
    class Shape
    {
    public:
        Shape() {}
        virtual ~Shape() {}
        virtual long getArea() = 0;
        virtual long getPerim()= 0;
        virtual void draw() = 0;
    private:
    };
    

    虚函数

    1. 使用虚成员函数实现多态。
    2. 虚成员函数的工作原理
      编译器创建虚成员函数表v-table。根据vptr指针指向的实际对象类型调用正确的函数。
    3. 不能通过基类指针访问派生类特有的方法。
    4. 虚析构函数
      如果一个函数是虚成员函数,那么析构函数也应该是虚成员函数。
    5. 使用虚成员函数的代价
      维护v-table会带来一些开销。

    相关文章

      网友评论

          本文标题:2018-01-28 高级多态(一)

          本文链接:https://www.haomeiwen.com/subject/fpwaaxtx.html