Можно ли вызвать оригинальный метод родителя в переопределяющем его методе потомка?

186
30 декабря 2021, 10:10

Есть родитель (закрыт для публичного использования):

class BaseElement {
protected:
    unsigned _guid, _size;
    char *_data;
    bool _swap;
    BaseElement(): _guid(0), _size(0), _data(nullptr), _swap(false) {}
public:
    virtual bool Get(char *data, unsigned size);
    //... other stuff
};

И потомок:

class SimpleBlock : public BaseElement {
    unsigned char _track, _flags;
    short _crpts;
public: 
    SimpleBlock(): _track(0), _flags(0), _crpts(0) { _guid = 0xA3; }
    bool Get(char *data, unsigned size) override;
    //... other stuff
};

Метод Get у потомка делает то же самое, за исключением того, что сместит указатель data на 4 байта вперёд и возьмёт из них значения для своих приватных переменных. Дублировать код Get родителя в потомке из-за 4 строчек как-то не красиво.

При указанных выше определениях класса можно ли в реализации Get у потомка вызвать тот же метод родителя и просто дописать операции с _data?

Answer 1

Надо просто указать класс, функцию которого вы хотите вызывать. Например:

bool Get(char *data, unsigned size) override
{
    ....
    return BaseElement::Get(data,size);
}
READ ALSO
как конвентировать текст в цифровой код?

как конвентировать текст в цифровой код?

Есть ли стандартная библиотека или готовое решение, которая может конвертировать символы например как делает этот сайтhttps://allcalc

191
Запуск с правами администратора

Запуск с правами администратора

Вводные данные: VS2017 запущенный от имени АдминистратораNET Framework 4

100
Отображение разного содержимого в одном окне WPF + MVVM

Отображение разного содержимого в одном окне WPF + MVVM

Добрый вечерСобственно, вопрос заключается в том , как в одном окне отображать разное содержимое К примеру то же приложение киви десктопное

147
ООП структура C#

ООП структура C#

//Есть структура Diary,для примера есть один метод ShowData,который выводит данные,но как быть если структур несколько,как мне обращаться к другим...

113