覆盖 returns 取消引用 "this" 的方法

Override method which returns dereference to "this"

我在 Base class 中有一个方法 returns 取消对 this 的引用。我想在 Derived class 中使用此方法,但还要稍微扩展它。这个例子不言而喻:

#include <iostream>

class Base {
   private:
    int value = 0;

   public:
    int getValue() { return value; }
    virtual Base& increase() {
        value++;
        return *this;
    }
};

class Derived : public Base {
   public:
    Derived& increase() {
        Base::increase();
        if (getValue() == 1) std::cout << "Success" << std::endl;

        return *this;
    }
};

据我了解,在上面的实现中Base::increase();只会在临时分配的Base对象中增加一些value。我该如何解决?

Base::increase();this 上调用基本方法(不涉及临时对象)。

如果你更清楚的话,你甚至可以这样写

this->Base::increase();