C++ Использование реализации родительского классаC++

Программы на C++. Форум разработчиков
Anonymous
C++ Использование реализации родительского класса

Сообщение Anonymous »

Что касается следующего кода, я бы не стал копировать так много кода или реализовывать класс интерфейса IHardware:

Код: Выделить всё

#include 
#include 

class IHardware
{
public:
virtual ~IHardware() = default;
virtual uint8_t GetHardwareData() const = 0; // I would to keep it pure virtual to beiong able to mock it
// I could use: uint8_t GetHardwareData() const { return 50; } and delete Hardware implementation class
};

class ISoftwareA : public IHardware
{
public:
virtual ~ISoftwareA() = default;
virtual uint8_t GetSoftwareData() const = 0;
};

class ISoftwareB : public IHardware
{
public:
virtual ~ISoftwareB() = default;
virtual std::string GetSoftwareData() const = 0;
};

class Hardware : public IHardware // I want to keep this to let the possibility to change the hardware implementation
{
uint8_t return_value_ = 50;
public:
uint8_t GetHardwareData() const override { return return_value_; }
};

class TestA final : public ISoftwareA, public Hardware
{
public:
uint8_t GetSoftwareData() const override { return 10; };
uint8_t GetHardwareData() const override { return Hardware::GetHardwareData(); } // 

Подробнее здесь: [url]https://stackoverflow.com/questions/79272740/c-using-implementation-of-parent-class[/url]

Вернуться в «C++»