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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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