#pragma once class BitStream; class AbstractEncoder { public: AbstractEncoder(BitStream* inputStream, BitStream* outputStream) : mInputStream(inputStream), mOutputStream(outputStream) { } virtual ~AbstractEncoder() = default; virtual bool encode() = 0; virtual bool decode() = 0; protected: BitStream* mInputStream{nullptr}; BitStream* mOutputStream{nullptr}; };