#pragma once class SmartString { public: explicit SmartString(char *c_str); explicit SmartString(unsigned int size); SmartString(const SmartString &smart_str); SmartString(SmartString &&smart_str) noexcept; SmartString &operator=(const SmartString &smart_str); SmartString &operator=(SmartString &&smart_str) noexcept; ~SmartString(); explicit operator char *() const; char *c_str = nullptr; };