#include <iostream>
#include <memory>
class NamedBuffer
{
public:
NamedBuffer(char const *n, uint32_t s)
: name(n)
, size(s)
, buffer(std::make_unique<uint8_t[]>(size))
{
this->info();
}
void info()
{
std::cout << "name : " << this->name << '\n';
std::cout << "size : " << this->size << '\n';
}
// ...
private:
std::string name;
uint32_t size;
std::unique_ptr<uint8_t[]> buffer;
// ...
};
class PrintableNamedBuffer : public NamedBuffer
{
public:
PrintableNamedBuffer(char const *n, uint32_t s)
: NamedBuffer(n, s)
{
}
// ...
};
int main()
{
constexpr char const *name = "TestBuffer";
constexpr uint32_t size = 1024;
PrintableNamedBuffer pnb(name, size);
}